Sha256: 57c6dae019603f8c1ae1552ab1cce4d439da2f741136b144b635ce1e823ccfd2

Contents?: true

Size: 1.49 KB

Versions: 2

Compression:

Stored size: 1.49 KB

Contents

require 'redis'
require 'tusk/observable/redis'
require 'helper'

module Tusk
  module Observable
    class TestRedis < TestCase
      include ObserverTests

      class Timer
        include Tusk::Observable::Redis

        def tick
          changed
          notify_observers
        end

        def connection
          Thread.current[:redis] ||= ::Redis.new
        end
      end

      class QueueingObserver
        def initialize q
          @q = q
        end

        def update
          @q.push :foo
        end
      end

      private

      def build_observable
        Timer.new
      end

      def observer_module
        Tusk::Observable::Redis
      end
    end

    class TestClassRedis < TestCase
      include ObserverTests

      def build_observable
        Class.new {
          extend Tusk::Observable::Redis

          def self.tick
            changed
            notify_observers
          end

          def self.connection
            Thread.current[:redis] ||= ::Redis.new
          end
        }
      end

      def observer_module
        Tusk::Observable::Redis
      end
    end
  end
end

Dir.chdir(File.join(File.dirname(__FILE__), '..')) do
  `redis-server redis-test.conf`
end

at_exit {
  next if $!

  exit_code = MiniTest::Unit.new.run(ARGV)

  processes = `ps -A -o pid,command | grep [r]edis-test`.split("\n")
  pids = processes.map { |process| process.split(" ")[0] }
  puts "Killing test redis server..."
  pids.each { |pid| Process.kill("KILL", pid.to_i) }

  exit exit_code
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tusk-1.1.0 test/observable/test_redis.rb
tusk-1.0.0 test/observable/test_redis.rb