summaryrefslogtreecommitdiff
path: root/qpid/cpp/bindings/qmf
diff options
context:
space:
mode:
authorKenneth Anthony Giusti <kgiusti@apache.org>2010-04-23 20:27:27 +0000
committerKenneth Anthony Giusti <kgiusti@apache.org>2010-04-23 20:27:27 +0000
commit944b2eb07f51118a37bacf3124dc19c0b7d85ca8 (patch)
tree5ac8c02fdb578f93e8e73d01c1e42eb56e202ac4 /qpid/cpp/bindings/qmf
parent5e4a9f8dd51364ef4479c0c94d339b8dade93640 (diff)
downloadqpid-python-944b2eb07f51118a37bacf3124dc19c0b7d85ca8.tar.gz
QPID-2546: implement event support for ruby wrapper. Python pending...
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@937506 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/bindings/qmf')
-rw-r--r--qpid/cpp/bindings/qmf/ruby/qmf.rb5
-rwxr-xr-xqpid/cpp/bindings/qmf/tests/ruby_console_test.rb33
-rw-r--r--qpid/cpp/bindings/qmf/tests/test_base.rb10
3 files changed, 45 insertions, 3 deletions
diff --git a/qpid/cpp/bindings/qmf/ruby/qmf.rb b/qpid/cpp/bindings/qmf/ruby/qmf.rb
index 823cf9bf93..402b99b800 100644
--- a/qpid/cpp/bindings/qmf/ruby/qmf.rb
+++ b/qpid/cpp/bindings/qmf/ruby/qmf.rb
@@ -339,7 +339,7 @@ module Qmf
@impl = Qmfengine::Event.new(@event_class.impl)
elsif kwargs.include?(:impl)
@impl = Qmfengine::Event.new(kwargs[:impl])
- @event_class = SchemaEventClass.new(nil, nil, :impl => @impl.getClass)
+ @event_class = SchemaEventClass.new(nil, nil, nil, :impl => @impl.getClass)
end
end
@@ -1034,7 +1034,7 @@ module Qmf
if kind == CLASS_OBJECT
clist << SchemaObjectClass.new(nil, nil, :impl => @impl.getObjectClass(key))
elsif kind == CLASS_EVENT
- clist << SchemaEventClass.new(nil, nil, :impl => @impl.getEventClass(key))
+ clist << SchemaEventClass.new(nil, nil, nil, :impl => @impl.getEventClass(key))
end
end
end
@@ -1190,6 +1190,7 @@ module Qmf
when Qmfengine::ConsoleEvent::OBJECT_UPDATE
@handler.object_update(ConsoleObject.new(nil, :impl => @event.object), @event.hasProps, @event.hasStats) if @handler
when Qmfengine::ConsoleEvent::EVENT_RECEIVED
+ @handler.event_received(QmfEvent.new(nil, :impl => @event.event)) if @handler
when Qmfengine::ConsoleEvent::AGENT_HEARTBEAT
@handler.agent_heartbeat(AgentProxy.new(@event.agent, nil), @event.timestamp) if @handler
when Qmfengine::ConsoleEvent::METHOD_RESPONSE
diff --git a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb
index 9ef0ef57a8..11be03fc34 100755
--- a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb
+++ b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb
@@ -267,6 +267,39 @@ class ConsoleTest < ConsoleTestBase
end
+ def test_F_events
+
+ @event_list.clear
+ @store_events = :true
+
+ parent = @qmfc.object(:class =>"parent")
+ assert(parent, "Number of parent objects")
+
+ parent.set_numerics("big")
+ parent.set_numerics("small")
+ parent.set_numerics("negative")
+ parent.set_short_string("TEST")
+ parent.set_long_string("LONG_TEST")
+ parent.probe_userid()
+
+ @store_events = :false
+
+ assert_equal(@event_list.length, 5)
+
+ assert_equal(@event_list[0].get_attr("uint32val"), 0xA5A55A5A)
+ assert_equal(@event_list[0].get_attr("strval"), "Unused")
+ assert_equal(@event_list[1]["uint32val"], 5)
+ assert_equal(@event_list[1].get_attr("strval"), "Unused")
+ assert_equal(@event_list[2].get_attr("uint32val"), 0)
+ assert_equal(@event_list[2].get_attr("strval"), "Unused")
+ assert_equal(@event_list[3].get_attr("uint32val"), 0)
+ assert_equal(@event_list[3].get_attr("strval"), "TEST")
+ assert_equal(@event_list[4].get_attr("uint32val"), 0)
+ assert_equal(@event_list[4].get_attr("strval"), "LONG_TEST")
+
+ @event_list.clear
+
+ end
def test_G_basic_map_list_data
parent = @qmfc.object(:class => "parent")
diff --git a/qpid/cpp/bindings/qmf/tests/test_base.rb b/qpid/cpp/bindings/qmf/tests/test_base.rb
index cb7fd9d4f9..3e4337a9c0 100644
--- a/qpid/cpp/bindings/qmf/tests/test_base.rb
+++ b/qpid/cpp/bindings/qmf/tests/test_base.rb
@@ -28,11 +28,14 @@ class ConsoleTestBase < Qmf::ConsoleHandler
@settings.host = ARGV[0] if ARGV.size > 0
@settings.port = ARGV[1].to_i if ARGV.size > 1
@connection = Qmf::Connection.new(@settings)
- @qmfc = Qmf::Console.new
+ @qmfc = Qmf::Console.new(self)
@broker = @qmfc.add_connection(@connection)
@broker.wait_for_stable
+ @store_events = :false
+ @event_list = []
+
tests = []
methods.each do |m|
name = m.to_s
@@ -70,4 +73,9 @@ class ConsoleTestBase < Qmf::ConsoleHandler
def fail(text)
raise text
end
+
+ def event_received(event)
+ @event_list << event if @store_events
+ end
+
end