aboutsummaryrefslogtreecommitdiff
path: root/tests/TestSwitchBehavior.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/TestSwitchBehavior.py')
-rw-r--r--tests/TestSwitchBehavior.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/TestSwitchBehavior.py b/tests/TestSwitchBehavior.py
new file mode 100644
index 0000000..774dbbc
--- /dev/null
+++ b/tests/TestSwitchBehavior.py
@@ -0,0 +1,41 @@
+import unittest
+import util.ComponentRegistry as compReg
+
+from behaviors.SwitchBehavior import SwitchBehavior
+from behaviors.EchoBehavior import EchoBehavior
+from behaviors.DebugBehavior import DebugBehavior
+
+class TestSwitchBehavior(unittest.TestCase):
+ def setUp(self):
+ compReg.initRegistry()
+
+ # add a test registry
+ self.behavior1 = EchoBehavior({'Id': 'behavior1'})
+ self.behavior2 = DebugBehavior({'Id': 'behavior2'})
+ compReg.registerComponent(self.behavior1)
+ compReg.registerComponent(self.behavior2)
+
+ self.switchBehavior = SwitchBehavior({'Id': 'switch', 'PrefixToBehavior': '{"@": "behavior1", "#": "behavior2"}', 'DefaultBehavior': 'behavior1'})
+ compReg.registerComponent(self.switchBehavior)
+
+ def tearDown(self):
+ pass
+
+ def test_switch_to_behavior1(self):
+ inputs = [{'Data': '@something', 'Location': 'someloc'}]
+ returned = self.switchBehavior.processResponse(inputs, [])
+ assert returned[0][0]['Location'] == 'someloc'
+
+ def test_switch_to_behavior2(self):
+ inputs = [{'Data': '#something'}]
+ returned = self.switchBehavior.processResponse(inputs, [])
+ assert returned[0] == []
+
+ def test_default_behavior(self):
+ inputs = [{'Data': 'something', 'Location': 'someloc'}]
+ returned = self.switchBehavior.processResponse(inputs, [])
+ assert returned[0][0]['Location'] == 'someloc'
+
+
+if __name__ == '__main__':
+ unittest.main()