aboutsummaryrefslogtreecommitdiff
path: root/tests/TestSwitchBehavior.py
blob: 774dbbc2713d8bf83bd1a78c33bfd0c6eab98c78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()