Exemple #1
0
    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
        )
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
 def __init__(self):
     self.__state = State('from')
Exemple #6
0
 def setUp(self):
     self.__transition_table = mock.Mock(TransitionTable)
     self.__context = TestContext()
     self.__transition = Transition(State(self.__TEST_FROM),
                                    State(self.__TEST_TO))