mirror of
https://github.com/status-im/spiff-arena.git
synced 2025-02-06 23:24:08 +00:00
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
|
import os
|
||
|
import unittest
|
||
|
|
||
|
from SpiffWorkflow.dmn.engine.DMNEngine import DMNEngine
|
||
|
from SpiffWorkflow.dmn.parser.BpmnDmnParser import BpmnDmnParser
|
||
|
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
|
||
|
from tests.SpiffWorkflow.dmn.DecisionRunner import DecisionRunner
|
||
|
from tests.SpiffWorkflow.dmn.python_engine.PythonDecisionRunner import \
|
||
|
PythonDecisionRunner
|
||
|
|
||
|
|
||
|
class HitPolicyTest(BpmnWorkflowTestCase):
|
||
|
PARSER_CLASS = BpmnDmnParser
|
||
|
|
||
|
def testHitPolicyUnique(self):
|
||
|
file_name = os.path.join(os.path.dirname(__file__), 'data', 'unique_hit.dmn')
|
||
|
runner = PythonDecisionRunner(file_name)
|
||
|
decision_table = runner.decision_table
|
||
|
self.assertEqual('UNIQUE', decision_table.hit_policy)
|
||
|
res = runner.result({'name': 'Larry'})
|
||
|
self.assertEqual(1, res['result'])
|
||
|
|
||
|
def testHitPolicyCollect(self):
|
||
|
file_name = os.path.join(os.path.dirname(__file__), 'data', 'collect_hit.dmn')
|
||
|
runner = PythonDecisionRunner(file_name)
|
||
|
decision_table = runner.decision_table
|
||
|
self.assertEqual('COLLECT', decision_table.hit_policy)
|
||
|
res = runner.result({'type': 'stooge'})
|
||
|
self.assertEqual(4, len(res['name']))
|
||
|
|
||
|
|
||
|
def suite():
|
||
|
return unittest.TestLoader().loadTestsFromTestCase(HitPolicyTest)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.TextTestRunner(verbosity=2).run(suite())
|