def setUp(self): """ Sets up tests environment """ self.__states = { 'from': State('from'), 'to': State('to') } self.__guard = mock.Mock(GuardInterface) self.__listeners = { 'before': mock.Mock(ListenerInterface), 'after': mock.Mock(ListenerInterface) } self.__state_manager = StateManager() self.__state_manager.get_state = mock.Mock( side_effect=self.__states.values() ) self.__guard_manager = GuardManager() self.__guard_manager.get_guard = mock.Mock(return_value=self.__guard) self.__listener_manager = ListenerManager() self.__listener_manager.get_listener = mock.Mock( side_effect=self.__listeners.values() ) self.__factory = TransitionFactory( self.__state_manager, self.__guard_manager, self.__listener_manager )
def test_add_transition_without_signal(self): """ Tests without signal """ with self.assertRaises(StopIteration): next(self.__table.find_transitions(self.__context)) transition = Transition(State('from'), State('to')) self.__table.add_transition(transition) found = self.__table.find_transitions(self.__context) self.assertIs(transition, next(found)) with self.assertRaises(StopIteration): next(found)
def test_add_state(self): """ Tests state adding """ state_name = 'state' state = State(state_name) self.__manager.add_state(state_name, state) self.assertEqual(self.__manager.get_state(state_name), state)
def test_find_transitions_with_false_guard(self): """ Tests with guard """ with self.assertRaises(StopIteration): next(self.__table.find_transitions(self.__context)) transition = Transition( State('from'), State('to'), 'signal', [ReverseGuard(NullGuard())] ) self.__table.add_transition(transition) with self.assertRaises(StopIteration): next(self.__table.find_transitions(self.__context)) found = self.__table.find_transitions(self.__context, 'signal') with self.assertRaises(StopIteration): next(found)
def __init__(self): self.__state = State('from')
def setUp(self): self.__transition_table = mock.Mock(TransitionTable) self.__context = TestContext() self.__transition = Transition(State(self.__TEST_FROM), State(self.__TEST_TO))