def test_interactionListFromFile(self):
        interactionList = interactionListFromFile('interactionList_files/file1.inter')

        awaitedInteraction1 = Interaction("interaction1", [599, 143], [162, 82])
        awaitedInteraction2 = Interaction("interaction2", [229, 533], [159, 113])

        self.assertTrue(interactionList.getInteraction("interaction1").equals(awaitedInteraction1))
        self.assertTrue(interactionList.getInteraction("interaction2").equals(awaitedInteraction2))
    def test_setInactive(self):
        self.interactionList.add(Interaction("interaction1", [], []))
        self.interactionList.add(Interaction("interaction2", [], []))

        self.interactionList.setInactive()

        self.assertFalse(self.interactionList.getInteractions()[0].getIsActive())
        self.assertFalse(self.interactionList.getInteractions()[1].getIsActive())
    def test_getInteraction(self):
        interaction1 = Interaction("interaction1", [], [])
        interaction2 = Interaction("interaction2", [], [])

        self.interactionList.add(interaction1)
        self.interactionList.add(interaction2)

        self.assertEqual(self.interactionList.getInteraction("interaction1"), interaction1)
        self.assertEqual(self.interactionList.getInteraction("interaction2"), interaction2)
    def test_add(self):
        interaction1 = Interaction("interaction1", [], [])
        interaction2 = Interaction("interaction2", [], [])

        self.interactionList.add(interaction1)
        self.interactionList.add(interaction2)

        self.assertIn(interaction1, self.interactionList.getInteractions())
        self.assertIn(interaction2, self.interactionList.getInteractions())
    def test_touches(self):
        interaction1 = Interaction("interaction1", [2, 10], [20, 30])
        interaction2 = Interaction("interaction2", [100, 200], [54, 3])

        self.interactionList.add(interaction1)
        self.interactionList.add(interaction2)

        self.assertTrue(self.interactionList.touches([10, 20]))
        self.assertTrue(self.interactionList.touches([124, 201]))
        self.assertFalse(self.interactionList.touches([44, 89]))
    def test_remove(self):
        interaction1 = Interaction("interaction1", [], [])
        interaction2 = Interaction("interaction2", [], [])

        self.interactionList.add(interaction1)
        self.interactionList.add(interaction2)

        self.interactionList.remove('interaction2')

        self.assertNotIn(interaction2, self.interactionList.getInteractions())
    def test_click(self):
        callFunctionsVerifier = CallFunctionsVerifier()

        interaction1 = Interaction("interaction1", [2, 10], [20, 30])
        interaction2 = Interaction("interaction2", [100, 200], [54, 3])

        interaction1.addAction(callFunctionsVerifier.function1)
        interaction2.addAction(callFunctionsVerifier.function2)

        self.interactionList.add(interaction1)
        self.interactionList.add(interaction2)

        self.interactionList.click(EventDummy([23, 72]))

        self.assertFalse(callFunctionsVerifier.called1)
        self.assertFalse(callFunctionsVerifier.called2)

        self.interactionList.click(EventDummy([10, 20]))

        self.assertTrue(callFunctionsVerifier.called1)
        self.assertFalse(callFunctionsVerifier.called2)

        self.interactionList.click(EventDummy([101, 202]))

        self.assertTrue(callFunctionsVerifier.called2)
    def test_interactionFromGameObject(self):
        obj = GameObjectDummy([0, 0], [10, 10])
        interaction = interactionFromGameObject(obj, "interaction")
        awaitedInteraction = Interaction("interaction", [0, 0], [10, 10])

        self.assertTrue(interaction.equals(awaitedInteraction))
 def setUp(self):
     self.interaction = Interaction('interaction', [0, 0], [10, 10])
class test_Interaction(unittest.TestCase):
    def setUp(self):
        self.interaction = Interaction('interaction', [0, 0], [10, 10])

    def test_addAction(self):
        self.interaction.addAction('a')
        self.interaction.addAction('b')

        self.assertListEqual(self.interaction.getActions(), ['a', 'b'])

    def test_addAction_firstToExecute(self):
        self.interaction.addAction_firstToExecute('a')
        self.interaction.addAction_firstToExecute('b')

        self.assertListEqual(self.interaction.getActions(), ['b', 'a'])

    def test_clearActions(self):
        self.interaction.addAction('a')
        self.interaction.addAction('b')

        self.interaction.clearActions()
        self.assertListEqual(self.interaction.getActions(), [])

    def test_setActive(self):
        self.interaction.setInactive()
        self.interaction.setActive()
        self.assertTrue(self.interaction.getIsActive())

    def test_setInactive(self):
        self.interaction.setActive()
        self.interaction.setInactive()
        self.assertFalse(self.interaction.getIsActive())

    def test_touches(self):
        self.assertTrue(self.interaction.touches([5, 6]))
        self.assertFalse(self.interaction.touches([3, 11]))

        self.interaction.setInactive()

        self.assertFalse(self.interaction.touches([0, 0]))
        self.assertFalse(self.interaction.touches([5, 6]))

    def test_click(self):
        callFunctionsVerifier = CallFunctionsVerifier()

        self.interaction.addAction(callFunctionsVerifier.function1)
        self.interaction.addAction(callFunctionsVerifier.function2)

        self.interaction.click(EventDummy([2, 12]))

        self.assertFalse(callFunctionsVerifier.called1)
        self.assertFalse(callFunctionsVerifier.called2)

        self.interaction.click(EventDummy([8, 5]))

        self.assertTrue(callFunctionsVerifier.called1)
        self.assertTrue(callFunctionsVerifier.called2)

        self.assertLess(callFunctionsVerifier.executionTime1,
                        callFunctionsVerifier.executionTime2)

    def test_toString(self):
        self.assertEqual(self.interaction.toString(), "interaction 0-0 10-10")

    def test_interactionFromString(self):
        strInteraction = interactionFromString(self.interaction.toString())

        self.assertTrue(strInteraction.equals(self.interaction))

    def test_interactionFromGameObject(self):
        obj = GameObjectDummy([0, 0], [10, 10])
        interaction = interactionFromGameObject(obj, "interaction")
        awaitedInteraction = Interaction("interaction", [0, 0], [10, 10])

        self.assertTrue(interaction.equals(awaitedInteraction))