From 350c7ffdba45a13a3d5ff98185f63d18c7d0f038 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 26 Jan 2011 17:36:09 +0000 Subject: [PATCH] first steps of integration tests are in place --- lib/amqp/failover.rb | 1 - spec/integration/simple_spec.rb | 29 +++++++++++++++++++++++++++++ spec/spec_helper.rb | 5 +++++ spec/spec_server.rb | 18 ++++++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 spec/integration/simple_spec.rb create mode 100644 spec/spec_server.rb diff --git a/lib/amqp/failover.rb b/lib/amqp/failover.rb index 3457ad4..4cf5bf6 100644 --- a/lib/amqp/failover.rb +++ b/lib/amqp/failover.rb @@ -1,6 +1,5 @@ # encoding: utf-8 -require 'amqp' require 'yaml' require 'amqp/failover/basic_client' diff --git a/spec/integration/simple_spec.rb b/spec/integration/simple_spec.rb new file mode 100644 index 0000000..8ba6021 --- /dev/null +++ b/spec/integration/simple_spec.rb @@ -0,0 +1,29 @@ +# encoding: utf-8 + +require 'spec_helper' +require 'amqp/server' +require 'spec_server' + +describe "Simple AMQP connection with Failover feature loaded" do + + before(:all) do + @log = SpecServer.log + end + + it "should be connected" do + EM.run { + @sig = EM.start_server('localhost', 15672, SpecServer) + conn = AMQP.connect(:host => 'localhost', :port => 15672) + EM.add_timer(0.1) { + conn.should be_connected + @log.size.should == 3 + (0..2).each { |i| @log[i][0].should == "send" } + @log[0][1].payload.should be_a(AMQP::Protocol::Connection::Start) + @log[1][1].payload.should be_a(AMQP::Protocol::Connection::Tune) + @log[2][1].payload.should be_a(AMQP::Protocol::Connection::OpenOk) + EM.stop + } + } + end + +end \ No newline at end of file diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 8d3dae3..ebd9559 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,6 +4,11 @@ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib') # require stuff require 'rubygems' +begin + require 'mq' +rescue Object => e + require 'amqp' +end require 'amqp/failover' require 'rspec' require 'rspec/autorun' \ No newline at end of file diff --git a/spec/spec_server.rb b/spec/spec_server.rb new file mode 100644 index 0000000..516e6bd --- /dev/null +++ b/spec/spec_server.rb @@ -0,0 +1,18 @@ +# encoding: utf-8 + +module SpecServer + include AMQP::Server + + class << self + def log + @log ||= [] + end + attr_writer :log + end + + def log(*args) + SpecServer.log << args + # silence Output + end + +end \ No newline at end of file