def initialize(self): undoStack = Stack() redoStack = Stack() self.__valid_movie = ValidMovie() self.__valid_client = ValidClient() self.__valid_rental = ValidRental() self.__movies_repository = Repository() self.__clients_repository = Repository() self.__rentals_repository = Repository() self.__service_movies = ServiceMovies(self.__movies_repository, self.__valid_movie, undoStack, redoStack, self.__rentals_repository) self.__service_clients = ServiceClients(self.__clients_repository, self.__valid_client, undoStack, redoStack, self.__rentals_repository) self.__service_rentals = ServiceRentals(self.__movies_repository, self.__clients_repository, self.__rentals_repository, self.__valid_rental, undoStack, redoStack) self.__service_movies.generate_movies() self.__service_clients.generate_client() self.__service_rentals.rent_movie(1, 1, 1, '1/1/1', '2/1/1') self.__service_rentals.return_movie(1, '3/1/1') self.__service_rentals.rent_movie(3, 1, 1, '5/1/1', '10/1/1') self.__service_rentals.return_movie(3, '15/1/1') self.__service_rentals.rent_movie(2, 2, 2, '2/2/2', '3/3/3') self.__service_rentals.return_movie(2, '7/2/2') self.__service_rentals.rent_movie(4, 3, 4, '1/1/1', '2/1/1') self.__service_rentals.return_movie(4, '2/1/1')
def test_ServiceAdd_invalidClient_throwsException(self): undo_stack = Stack() redo_stack = Stack() self.__rental_repository = Repository() self.__client_validator = ValidClient() self.__client_repository = Repository() self.__client_service = ServiceClients(self.__client_repository, self.__client_validator, undo_stack, redo_stack, self.__rental_repository) with self.assertRaises(ValidationError): self.__client_service.add_client(-1, '')
def test_ServiceAdd_invalidMovie_throwsException(self): undo_stack = Stack() redo_stack = Stack() self.__movie_validator = ValidMovie() self.__movie_repository = Repository() self.__rental_repository = Repository self.__movie_service = ServiceMovies(self.__movie_repository, self.__movie_validator, undo_stack, redo_stack, self.__rental_repository) with self.assertRaises(ValidationError): self.__movie_service.add_movie(-1, '', '-', '-')
def test_ServiceUpdate_inexistentClientId_throwsException(self): undo_stack = Stack() redo_stack = Stack() self.__rental_repository = Repository() self.__client_validator = ValidClient() self.__client_repository = Repository() self.__client_service = ServiceClients(self.__client_repository, self.__client_validator, undo_stack, redo_stack, self.__rental_repository) self.__client_service.add_client(1, 'Bob') with self.assertRaises(RepositoryError): self.__client_service.update_client(2, '-')
def test_ServiceRemove_inexistentMovie_throwsException(self): undo_stack = Stack() redo_stack = Stack() self.__movie_validator = ValidMovie() self.__movie_repository = Repository() rental_repository = Repository() self.__movie_service = ServiceMovies(self.__movie_repository, self.__movie_validator, undo_stack, redo_stack, rental_repository) self.__movie_service.add_movie(1, '-', '-', '-') with self.assertRaises(RepositoryError): self.__movie_service.remove_movie(2)
def test_ServiceRemove_existingMovie_isRemoved(self): undo_stack = Stack() redo_stack = Stack() self.__rental_repository = Repository() self.__movie_validator = ValidMovie() self.__movie_repository = Repository() self.__movie_service = ServiceMovies(self.__movie_repository, self.__movie_validator, undo_stack, redo_stack, self.__rental_repository) self.__movie_service.add_movie(1, '-', '-', '-') self.__movie_service.remove_movie(1) self.assertEqual(self.__movie_service.get_number(), 0)
def test_ServiceRemove_existingClient_isRemoved(self): undo_stack = Stack() redo_stack = Stack() self.__rental_repository = Repository() self.__client_validator = ValidClient() self.__client_repository = Repository() self.__client_service = ServiceClients(self.__client_repository, self.__client_validator, undo_stack, redo_stack, self.__rental_repository) self.__client_service.add_client(1, '-') self.__client_service.remove_client(1) self.assertEqual(self.__client_service.get_number(), 0)
def test_ServiceUpdate_inexistentId_throwsException(self): undo_stack = Stack() redo_stack = Stack() self.__movie_validator = ValidMovie() self.__movie_repository = Repository() self.__rental_repository = Repository self.__movie_service = ServiceMovies(self.__movie_repository, self.__movie_validator, undo_stack, redo_stack, self.__rental_repository) self.__movie_service.add_movie(1, 'Harry Potter', 'Witchcraft', 'Adventure') with self.assertRaises(RepositoryError): self.__movie_service.update_movie(2, '', '', '')
def test_ServiceAdd_validClient_isAdded(self): undo_stack = Stack() redo_stack = Stack() self.__rental_repository = Repository() self.__client_validator = ValidClient() self.__client_repository = Repository() self.__client_service = ServiceClients(self.__client_repository, self.__client_validator, undo_stack, redo_stack, self.__rental_repository) self.__client_service.add_client(1, 'John Doe') self.assertEqual( self.__client_service.get_clients()[ self.__client_service.get_number() - 1], Client(1, 'John Doe'))
def test_ServiceUpdate_client_isUpdated(self): undo_stack = Stack() redo_stack = Stack() self.__rental_repository = Repository() self.__client_validator = ValidClient() self.__client_repository = Repository() self.__client_service = ServiceClients(self.__client_repository, self.__client_validator, undo_stack, redo_stack, self.__rental_repository) self.__client_service.add_client(1, 'Bob') self.__client_service.update_client(1, 'Billy') self.assertEqual(self.__client_service.get_clients()[0].get_name(), 'Billy')
def test_ServiceUpdate_movieWith1emptyField_thatFieldIsUnchanged(self): undo_stack = Stack() redo_stack = Stack() self.__movie_validator = ValidMovie() self.__movie_repository = Repository() self.__rental_repository = Repository self.__movie_service = ServiceMovies(self.__movie_repository, self.__movie_validator, undo_stack, redo_stack, self.__rental_repository) self.__movie_service.add_movie(1, 'Harry Potter', 'Witchcraft', 'Adventure') self.__movie_service.update_movie(1, '', '-', '-') expected = Movie(1, 'Harry Potter', '-', '-') self.assertTrue( self.__movie_service.get_movies()[0].identical(expected))
def test_ServiceUpdate_movieWithAllFields_allFieldsUpdated(self): undo_stack = Stack() redo_stack = Stack() self.__movie_validator = ValidMovie() self.__movie_repository = Repository() self.__rental_repository = Repository self.__movie_service = ServiceMovies(self.__movie_repository, self.__movie_validator, undo_stack, redo_stack, self.__rental_repository) self.__movie_service.add_movie(1, 'Harry Potter', 'Witchcraft', 'Adventure') self.__movie_service.update_movie(1, 'Harry Potter 2', 'Wizardry', 'Action') expected = Movie(1, 'Harry Potter 2', 'Wizardry', 'Action') self.assertTrue( self.__movie_service.get_movies()[0].identical(expected))
def test_ServiceAdd_validMovie_isAdded(self): undo_stack = Stack() redo_stack = Stack() self.__movie_validator = ValidMovie() self.__movie_repository = Repository() self.__rental_repository = Repository self.__movie_service = ServiceMovies(self.__movie_repository, self.__movie_validator, undo_stack, redo_stack, self.__rental_repository) self.__valid_movie = Movie(1, 'Frozen', 'Ice queen with magical powers', 'Animation') self.__movie_service.add_movie(1, 'Frozen', 'Ice queen with magical powers', 'Animation') self.assertEqual( self.__movie_service.get_movies()[ self.__movie_service.get_number() - 1], self.__valid_movie)
def initialize(self): undoStack = Stack() redoStack = Stack() self.__rental_validator = ValidRental() self.__movies_repository = Repository() self.__clients_repository = Repository() self.__rentals_repository = Repository() self.__service_rentals = ServiceRentals(self.__movies_repository, self.__clients_repository, self.__rentals_repository, self.__rental_validator, undoStack, redoStack) self.__movies_repository.add(Movie(1, 'Frozen', 'Ice', 'Animation')) self.__movies_repository.add( Movie(2, 'Harry Potter', 'Wizard', 'Adventure')) self.__clients_repository.add(Client(1, 'John Doe')) self.__clients_repository.add(Client(2, 'Jane Doe')) self.assertEqual(self.__service_rentals.get_number(), 0)
def initialize(self): self.__valid_movie = ValidMovie() self.__valid_client = ValidClient() self.__movies_repository = Repository() self.__clients_repository = Repository() self.__rentals_repository = Repository() undoStack = Stack() redoStack = Stack() self.__service_movies = ServiceMovies(self.__movies_repository, self.__valid_movie, undoStack, redoStack, self.__rentals_repository) self.__service_clients = ServiceClients(self.__clients_repository, self.__valid_client, undoStack, redoStack, self.__rentals_repository) self.__movies_repository.add(Movie(1, 'Frozen', 'Ice', 'Animation')) self.__movies_repository.add( Movie(2, 'Harry Potter', 'Wizard', 'Adventure')) self.__clients_repository.add(Client(1, 'John Doe')) self.__clients_repository.add(Client(2, 'Jane Doe'))
def test(self): valid_movie = ValidMovie() valid_client = ValidClient() valid_rental = ValidRental() repository_movie = Repository() repository_client = Repository() repository_rental = Repository() undo_stack = Stack() redo_stack = Stack() service_movie = ServiceMovies(repository_movie, valid_movie, undo_stack, redo_stack, repository_rental) service_client = ServiceClients(repository_client, valid_client, undo_stack, redo_stack, repository_rental) service_rental = ServiceRentals(repository_movie, repository_client, repository_rental, valid_rental, undo_stack, redo_stack) service_undo = ServiceUndo(undo_stack, redo_stack) service_undo.clear() service_movie.add_movie(1, 'a', 'a', 'a') service_undo.undo() self.assertEqual(0, service_movie.get_number()) service_undo.redo() self.assertEqual(service_movie.get_movies()[0], Movie(1, 'a', 'a', 'a')) service_client.add_client(1, 'a') service_undo.undo() self.assertEqual(0, service_client.get_number()) service_undo.redo() self.assertEqual(service_client.get_clients()[0], Client(1, 'a')) with self.assertRaises(UndoError): service_undo.redo() service_client.update_client(1, 'b') service_undo.undo() self.assertEqual(service_client.get_clients()[0].get_name(), 'a') service_undo.redo() self.assertEqual(service_client.get_clients()[0].get_name(), 'b') service_rental.rent_movie(1, 1, 1, '1/1/1', '2/2/2') service_client.remove_client(1) self.assertEqual(service_rental.get_number(), 0) self.assertEqual(service_client.get_number(), 0) service_undo.undo() self.assertEqual(service_rental.get_number(), 1) self.assertEqual(service_client.get_number(), 1) service_undo.redo() self.assertEqual(service_rental.get_number(), 0) self.assertEqual(service_client.get_number(), 0) service_client.add_client(1, 'a') service_rental.rent_movie(1, 1, 1, '1/1/1', '2/2/2') service_undo.undo() self.assertEqual(service_rental.get_number(), 0) service_undo.redo() self.assertEqual( service_rental.get_rentals()[0], Rental(1, 1, 1, Date(1, 1, 1), Date(2, 2, 2), Date(0, 0, 0))) service_rental.return_movie(1, '3/3/3') service_undo.undo() self.assertEqual(service_rental.get_rentals()[0].get_returnDate(), Date(0, 0, 0)) service_undo.redo() self.assertEqual(service_rental.get_rentals()[0].get_returnDate(), Date(3, 3, 3))
from entities import Client, Rental, Movie from valid import ValidMovie, ValidClient, ValidRental from repository import Repository, Stack from service import ServiceMovies, ServiceClients, ServiceRentals from undo import ServiceUndo from ui import Console ''' Validators ''' valid_movie = ValidMovie() valid_client = ValidClient() valid_rental = ValidRental() ''' Undo Controller ''' undo_stack = Stack() redo_stack = Stack() ''' Repositories ''' # loading settings.properties filepath = "settings_binary.properties" try: file = open(filepath, "r") line = file.readline().strip() # reading repository = ... line = line.split(" ") if line[2] == "inmemory": repository_movie = Repository() repository_client = Repository() repository_rental = Repository() ''' Services ''' service_movie = ServiceMovies(repository_movie, valid_movie, undo_stack, redo_stack, repository_rental) service_client = ServiceClients(repository_client, valid_client,