diff options
Diffstat (limited to 'cpp/bindings/qmf/tests')
| -rwxr-xr-x | cpp/bindings/qmf/tests/agent_ruby.rb | 32 | ||||
| -rw-r--r-- | cpp/bindings/qmf/tests/python_agent.py | 31 | ||||
| -rwxr-xr-x | cpp/bindings/qmf/tests/python_console.py | 38 |
3 files changed, 100 insertions, 1 deletions
diff --git a/cpp/bindings/qmf/tests/agent_ruby.rb b/cpp/bindings/qmf/tests/agent_ruby.rb index 0be779994a..86eefc59a6 100755 --- a/cpp/bindings/qmf/tests/agent_ruby.rb +++ b/cpp/bindings/qmf/tests/agent_ruby.rb @@ -23,7 +23,7 @@ require 'qmf' require 'socket' class Model - attr_reader :parent_class, :child_class + attr_reader :parent_class, :child_class, :event_class def initialize @parent_class = Qmf::SchemaObjectClass.new("org.apache.qpid.qmf", "parent") @@ -79,11 +79,16 @@ class Model @child_class = Qmf::SchemaObjectClass.new("org.apache.qpid.qmf", "child") @child_class.add_property(Qmf::SchemaProperty.new("name", Qmf::TYPE_SSTR, :index => true)) + + @event_class = Qmf::SchemaEventClass.new("org.apache.qpid.qmf", "test_event", Qmf::SEV_INFORM) + @event_class.add_argument(Qmf::SchemaArgument.new("uint32val", Qmf::TYPE_UINT32)) + @event_class.add_argument(Qmf::SchemaArgument.new("strval", Qmf::TYPE_LSTR)) end def register(agent) agent.register_class(@parent_class) agent.register_class(@child_class) + agent.register_class(@event_class) end end @@ -139,6 +144,11 @@ class App < Qmf::AgentHandler 'sstr' => "Short String", 'map' => {'first' => 'FIRST', 'second' => 'SECOND'}} + event = Qmf::QmfEvent.new(@model.event_class) + event.uint32val = @parent.uint32val + event.strval = "Unused" + @agent.raise_event(event) + elsif args['test'] == "small" @parent.uint64val = 4 @parent.uint32val = 5 @@ -150,6 +160,11 @@ class App < Qmf::AgentHandler @parent.int16val = 10 @parent.int8val = 11 + event = Qmf::QmfEvent.new(@model.event_class) + event.uint32val = @parent.uint32val + event.strval = "Unused" + @agent.raise_event(event) + elsif args['test'] == "negative" @parent.uint64val = 0 @parent.uint32val = 0 @@ -161,6 +176,11 @@ class App < Qmf::AgentHandler @parent.int16val = -1000 @parent.int8val = -100 + event = Qmf::QmfEvent.new(@model.event_class) + event.uint32val = @parent.uint32val + event.strval = "Unused" + @agent.raise_event(event) + else retCode = 1 retText = "Invalid argument value for test" @@ -169,9 +189,19 @@ class App < Qmf::AgentHandler elsif name == "set_short_string" @parent.sstrval = args['value'] + event = Qmf::QmfEvent.new(@model.event_class) + event.uint32val = 0 + event.strval = @parent.sstrval + @agent.raise_event(event) + elsif name == "set_long_string" @parent.lstrval = args['value'] + event = Qmf::QmfEvent.new(@model.event_class) + event.uint32val = 0 + event.strval = @parent.lstrval + @agent.raise_event(event) + elsif name == "create_child" oid = @agent.alloc_object_id(2) args['child_ref'] = oid diff --git a/cpp/bindings/qmf/tests/python_agent.py b/cpp/bindings/qmf/tests/python_agent.py index c42273d7b2..83531830b1 100644 --- a/cpp/bindings/qmf/tests/python_agent.py +++ b/cpp/bindings/qmf/tests/python_agent.py @@ -82,10 +82,15 @@ class Model: self.child_class = qmf.SchemaObjectClass("org.apache.qpid.qmf", "child") self.child_class.add_property(qmf.SchemaProperty("name", qmf.TYPE_SSTR, {"index":True})) + self.event_class = qmf.SchemaEventClass("org.apache.qpid.qmf", "test_event", qmf.SEV_NOTICE) + self.event_class.add_argument(qmf.SchemaArgument("uint32val", qmf.TYPE_UINT32)) + self.event_class.add_argument(qmf.SchemaArgument("strval", qmf.TYPE_LSTR)) + def register(self, agent): agent.register_class(self.parent_class) agent.register_class(self.child_class) + agent.register_class(self.event_class) @@ -151,6 +156,12 @@ class App(qmf.AgentHandler): 'sstr' : "Short String", 'map' : {'first' : 'FIRST', 'second' : 'SECOND'}}) + event = qmf.QmfEvent(self._model.event_class) + event.uint32val = self._parent.get_attr("uint32val") + event.strval = "Unused" + + self._agent.raise_event(event) + ## Test the __getattr__ implementation: ## @todo: remove once python_client implements this ## form of property access @@ -169,6 +180,11 @@ class App(qmf.AgentHandler): self._parent.set_attr("int16val", 10) self._parent.set_attr("int8val", 11) + event = qmf.QmfEvent(self._model.event_class) + event.uint32val = self._parent.uint32val + event.strval = "Unused" + self._agent.raise_event(event) + elif args['test'] == "negative": self._parent.set_attr("uint64val", 0) self._parent.set_attr("uint32val", 0) @@ -180,6 +196,11 @@ class App(qmf.AgentHandler): self._parent.set_attr("int16val", -1000) self._parent.set_attr("int8val", -100) + event = qmf.QmfEvent(self._model.event_class) + event.uint32val = self._parent.uint32val + event.strval = "Unused" + self._agent.raise_event(event) + else: _retCode = 1 _retText = "Invalid argument value for test" @@ -188,10 +209,20 @@ class App(qmf.AgentHandler): elif name == "set_short_string": self._parent.set_attr('sstrval', args['value']) + event = qmf.QmfEvent(self._model.event_class) + event.uint32val = 0 + event.strval = self._parent.sstrval + self._agent.raise_event(event) + self._agent.method_response(context, 0, "OK", args) elif name == "set_long_string": self._parent.set_attr('lstrval', args['value']) + event = qmf.QmfEvent(self._model.event_class) + event.uint32val = 0 + event.strval = self._parent.lstrval + self._agent.raise_event(event) + self._agent.method_response(context, 0, "OK", args) elif name == "create_child": diff --git a/cpp/bindings/qmf/tests/python_console.py b/cpp/bindings/qmf/tests/python_console.py index 6f366d1a3d..fe27c33c4b 100755 --- a/cpp/bindings/qmf/tests/python_console.py +++ b/cpp/bindings/qmf/tests/python_console.py @@ -23,6 +23,7 @@ from qpid.testlib import TestBase010 from qpid.datatypes import Message from qpid.queue import Empty from time import sleep +import qmf.console class QmfInteropTests(TestBase010): @@ -166,6 +167,43 @@ class QmfInteropTests(TestBase010): for binding in bindings: self.assertEqual(binding.exchangeRef, mgmt_exchange.getObjectId()) + def test_F_events(self): + class Handler(qmf.console.Console): + def __init__(self): + self.queue = [] + + def event(self, broker, event): + if event.getClassKey().getClassName() == "test_event": + self.queue.append(event) + + handler = Handler() + self.startQmf(handler) + + parents = self.qmf.getObjects(_class="parent") + self.assertEqual(len(parents), 1) + parent = parents[0] + + 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() + + queue = handler.queue + self.assertEqual(len(queue), 5) + self.assertEqual(queue[0].arguments["uint32val"], 0xA5A55A5A) + self.assertEqual(queue[0].arguments["strval"], "Unused") + self.assertEqual(queue[1].arguments["uint32val"], 5) + self.assertEqual(queue[1].arguments["strval"], "Unused") + self.assertEqual(queue[2].arguments["uint32val"], 0) + self.assertEqual(queue[2].arguments["strval"], "Unused") + self.assertEqual(queue[3].arguments["uint32val"], 0) + self.assertEqual(queue[3].arguments["strval"], "TEST") + self.assertEqual(queue[4].arguments["uint32val"], 0) + self.assertEqual(queue[4].arguments["strval"], "LONG_TEST") + + def getProperty(self, msg, name): for h in msg.headers: if hasattr(h, name): return getattr(h, name) |
