Sha256: 4c6cb42006968dd97abb6573ef98e2be73c7e8ddad3a42ac339eb0972aa323d8

Contents?: true

Size: 1.34 KB

Versions: 8

Compression:

Stored size: 1.34 KB

Contents

require File.expand_path('../integration_test', __FILE__)

module Propono
  class UdpProxyTest < IntegrationTest
    def test_the_message_gets_there
      topic = "test-topic"
      text = "This is my message #{DateTime.now} #{rand()}"
      flunks = []
      message_received = false

      Propono.config.udp_port = 20001

      Propono.subscribe_by_queue(topic)

      sqs_thread = Thread.new do
        begin
          Propono.listen_to_queue(topic) do |message, context|
            flunks << "Wrong message" unless text == message
            flunks << "Wrong id" unless context[:id] =~ Regexp.new("[a-z0-9]{6}-[a-z0-9]{6}")
            message_received = true
          end
        rescue => e
          flunks << e.message
        ensure
          sqs_thread.terminate
        end
      end

      Thread.new do
        sleep(1) while !message_received
        sleep(5) # Make sure all the message deletion clear up in the thread has happened
        sqs_thread.terminate
      end

      udp_thread = Thread.new do
        Propono.proxy_udp
      end

      sleep(1) # Make sure the proxy has started

      Propono::Publisher.publish(topic, text, protocol: :udp)
      flunks << "Test timeout" unless wait_for_thread(sqs_thread)
      flunk(flunks.join("\n")) unless flunks.empty?
    ensure
      udp_thread.terminate
      sqs_thread.terminate
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
propono-1.1.3 test/integration/udp_proxy_test.rb
propono-1.1.2 test/integration/udp_proxy_test.rb
propono-1.1.1 test/integration/udp_proxy_test.rb
propono-1.1.0 test/integration/udp_proxy_test.rb
propono-1.0.0 test/integration/udp_proxy_test.rb
propono-1.0.0.rc3 test/integration/udp_proxy_test.rb
propono-1.0.0.rc2 test/integration/udp_proxy_test.rb
propono-1.0.0.rc1 test/integration/udp_proxy_test.rb