def testRemoveClient(self):
        client1 = Client(1, "Name1")
        client2 = Client(2, "Name2")
        repo = Repository()
        functions = ClientController(repo, Statistics(repo))

        functions.addClient(client1.getId(), client1.getName())
        functions.addClient(client2.getId(), client2.getName())

        msg1 = functions.removeClient(1)

        self.assertTrue(len(msg1) == 0)
        self.assertTrue(functions.getClients()[0].getId() == client2.getId())
        self.assertTrue(functions.getClients()[0].getName() == client2.getName())

        msg2 = functions.removeClient(1)

        self.assertTrue(msg2 == "The provided ID does not exist")
        self.assertTrue(functions.getClients()[0].getId() == client2.getId())
        self.assertTrue(functions.getClients()[0].getName() == client2.getName())
class TestClientController(unittest.TestCase):
    def setUp(self):
        self.repo = Repository()
        self.rentalRepo = Repository()
        self.Ucontroller = UndoController()
        self.client = Client(11, 'alex')
        self.client2 = Client(12, 'ana')
        self.controller = ClientController(self.repo, self.Ucontroller,
                                           self.rentalRepo)

    def test_something(self):
        self.assertRaises(Exception, self.Ucontroller.undo)
        self.assertRaises(Exception, self.Ucontroller.redo)
        self.Ucontroller.newOperation()
        self.controller.addClient(self.client)
        self.assertEqual(len(self.repo), 1)
        self.Ucontroller.newOperation()
        self.controller.removeClient(11)
        self.assertEqual(len(self.repo), 0)
        self.Ucontroller.newOperation()
        self.controller.addClient(self.client)
        self.Ucontroller.newOperation()
        self.controller.updateClient(self.client)
        self.Ucontroller.newOperation()
        self.controller.addClient(self.client2)
        self.assertEqual(len(self.controller.getAllClients()), 2)
        self.assertRaises(ControllerException, self.controller.searchClient,
                          'nu')
        self.assertRaises(ControllerException, self.controller.searchClient,
                          '')
        self.assertEqual(len(self.controller.searchClient('a')), 2)
        self.Ucontroller.newOperation()
        self.controller.removeClient(12)
        self.Ucontroller.undo()
        self.assertEqual(len(self.controller.getAllClients()), 2)
        self.Ucontroller.redo()
        self.assertEqual(len(self.controller.getAllClients()), 1)