summaryrefslogtreecommitdiff
path: root/cpp/bindings/qmf/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings/qmf/tests')
-rwxr-xr-xcpp/bindings/qmf/tests/agent_ruby.rb32
-rw-r--r--cpp/bindings/qmf/tests/python_agent.py31
-rwxr-xr-xcpp/bindings/qmf/tests/python_console.py38
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)