Sha256: e2322d2ed8547520d57a6d14cd15b8a7a24bcc89f2cdce117ec59f27e2a2df2f

Contents?: true

Size: 1.38 KB

Versions: 9

Compression:

Stored size: 1.38 KB

Contents

require 'lokii/servers/memory_server'

module Lokii
  module Test
    module Macros
      class_eval do 
        def running_server_with_handlers(*args, &block)
          # Arrayify and constantize the handlers list
          args = [args] unless args.is_a? Array
          args.map!{|h| "#{h}".split('_').map!(&:capitalize).join }
          args.map!{|h| Object.module_eval "::#{h}" } 
          context "running server with #{args} handler(s)" do
            setup do      
              @server = Lokii::MemoryServer.new
              @server.stubs(:running?).returns(:true)
              @server.handlers = args.map{|h| h.new}
            end  
            yield
          end  
        end
      end  
    end
    
    module Helpers
      def receive(text, number = "+123456789", sent = Time.now)
        @server.receive(text, number, sent)
      end

      def responses
        @server.process
        @server.outbox
      end

      def assert_response(text)
        messages = responses.map{|m| m[:text]}
        assert messages.include?(text), "'#{text}' not included in #{messages}"
      end

      def assert_response_to(number)
        numbers = responses.map{|m| m[:number]}
        assert numbers.include?(number), "#{number} not included in #{numbers}"
      end
    end  
  end
end


Test::Unit::TestCase.send(:extend, Lokii::Test::Macros)
Test::Unit::TestCase.send(:include, Lokii::Test::Helpers)

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
jeffrafter-lokii-0.2.2 lib/lokii/test.rb
jeffrafter-lokii-0.2.3 lib/lokii/test.rb
jeffrafter-lokii-0.2.5 lib/lokii/test.rb
jeffrafter-lokii-0.3.0 lib/lokii/test.rb
jeffrafter-lokii-0.3.1 lib/lokii/test.rb
jeffrafter-lokii-0.3.3 lib/lokii/test.rb
jeffrafter-lokii-0.4.0 lib/lokii/test.rb
jeffrafter-lokii-0.5.0 lib/lokii/test.rb
jeffrafter-lokii-0.6.0 lib/lokii/test.rb