Skip to content

Instantly share code, notes, and snippets.

@erikh
Created March 4, 2012 16:35
Show Gist options
  • Save erikh/181c76bf1cf2e4875c71 to your computer and use it in GitHub Desktop.
Save erikh/181c76bf1cf2e4875c71 to your computer and use it in GitHub Desktop.
require 'helper'
require 'sm/network/registry/server'
require 'sm/core/event_server'
require 'sm/core/client_api_server'
require 'sm/core/client_relay'
class TestCoreOrchestration < MiniTest::Unit::TestCase
def setup
@event_server = SM::Core::EventServer.new
@registry_server = SM::Network::Registry::Server.new
@client_api_server = SM::Core::ClientAPIServer.new
[ @event_server, @registry_server, @client_api_server ].each { |x| x.use_timeout = true }
sleep 1
end
def create_client_relay(events)
@client_relay = SM::Core::ClientRelay.new(events)
end
def teardown
@event_server.shutdown
@registry_server.shutdown
@client_api_server.shutdown
@client_relay.shutdown if @client_relay
sleep 1
end
def test_orchestration
events = {
"event1" => proc { |m| nil },
"event2" => proc { |m| $handled_event2 = true; ["event1"] }
}
create_client_relay(events)
sleep 1
c = SM::Network::Client.new(:REQ, SM::Network::CLIENT_API_ADDR)
c.send_message("command", "event1")
assert_equal(["ack"], c.recv_message)
c.send_message("command", "event2")
assert_equal(["ack"], c.recv_message)
assert($handled_event2, "Received event2 message")
c.close
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment