|
| 1 | +import unittest |
| 2 | +import json |
| 3 | + |
| 4 | +from mock import patch, Mock |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +from tests.tools import create_mock_json |
| 10 | +from twilio.rest.resources.task_router.workflow_config import WorkflowConfig |
| 11 | +from twilio.rest.resources.task_router.workflow_rule import WorkflowRule |
| 12 | +from twilio.rest.resources.task_router.workflow_ruletarget import WorkflowRuleTarget |
| 13 | + |
| 14 | +class WorkflowConfigTest(unittest.TestCase): |
| 15 | + def test_to_json(self): |
| 16 | + rules =[] |
| 17 | + ruleTargets=[] |
| 18 | + ruleTargets1=[] |
| 19 | + ruleTarget = WorkflowRuleTarget("WQeae4fc2f4db7f377c5d3758fb08b79b7","1==1",1,20) |
| 20 | + ruleTarget1 = WorkflowRuleTarget("WQ19ebe92fb33522f018b5a31d805d94da","1==1",1,210) |
| 21 | + ruleTargets.append(ruleTarget); |
| 22 | + ruleTargets1.append(ruleTarget1); |
| 23 | + rule = WorkflowRule("1==1",ruleTargets,"SomeQ") |
| 24 | + rules.append(rule) |
| 25 | + rule1 = WorkflowRule("1==1",ruleTargets1,"SomeOtherQ") |
| 26 | + rules.append(rule1) |
| 27 | + deftarget = WorkflowRuleTarget("WQ9963154bf3122d0a0558f3763951d916","1==1",None,None) |
| 28 | + |
| 29 | + |
| 30 | + config = WorkflowConfig(rules,deftarget) |
| 31 | + self.assertEqual(self.is_json(config.toJson()),True) |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + def test_from_Json(self): |
| 37 | + |
| 38 | + data="{\"task_routing\": { \"filters\": [ { \"targets\": [ { \"queue\": \"WQec62de0e1148b8477f2e24579779c8b1\", \"expression\": \"task.language IN worker.languages\" } ], \"friendly_name\": \"Sales\", \"expression\": \"type == \\\"sales\\\"\" }, { \"targets\": [ { \"queue\": \"WQ2acd4c1a41ffadce5d1bac9e1ce2fa9f\", \"expression\": \"task.language IN worker.languages\" } ], \"friendly_name\": \"Marketing\", \"expression\": \"type == \\\"marketing\\\"\" }, { \"targets\": [ { \"queue\": \"WQe5eb317eb23500ade45087ea6522896c\", \"expression\": \"task.language IN worker.languages\" } ], \"friendly_name\": \"Support\", \"expression\": \"type == \\\"support\\\"\" } ], \"default_filter\": { \"queue\": \"WQ05f810d2d130344fd56e3c91ece2e594\" } }}" |
| 39 | + config = WorkflowConfig.json2obj(data) |
| 40 | + self.assertEqual(len(config.task_routing.filters),3) |
| 41 | + self.assertEqual(len(config.task_routing.default_filter),1) |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | + def test_from_json2(self): |
| 46 | + data ="{ \"task_routing\": { \"default_filter\": { \"expression\": null, \"priority\": null, \"queue\": \"WQYYYYY\", \"timeout\": null }, \"filters\": [ { \"expression\": \"1==1\", \"friendly_name\": \"SomeQ\", \"targets\": [ { \"expression\": \"1==1\", \"priority\": 1, \"queue\": \"WQXXXX\", \"timeout\": 20 } ] }, { \"expression\": \"1==1\", \"friendly_name\": \"SomeOtherQ\", \"targets\": [ { \"expression\": \"1==1\", \"priority\": 1, \"queue\": \"WQXXXX\", \"timeout\": 20 } ] } ] }}" |
| 47 | + config = WorkflowConfig.json2obj(data) |
| 48 | + self.assertEqual(len(config.task_routing.filters),2) |
| 49 | + self.assertEqual(len(config.task_routing.default_filter),4) |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | + def is_json(self,myjson): |
| 54 | + try: |
| 55 | + json_object = json.loads(myjson) |
| 56 | + except ValueError, e: |
| 57 | + return False |
| 58 | + return True |
| 59 | + |
0 commit comments