public void MovieService_UpdateMovie_ReturnCreateMovieResultModel_NotSuccessful_Update() { Movie movie = _movie; MovieDomainModel movieDomainModel = _movieDomainModel; Movie movieNull = null; var expectedResult = new CreateMovieResultModel() { ErrorMessage = "Error occured while updating current movie status, please try again.", IsSuccessful = false }; IEnumerable <Projection> listaProjekcija = new List <Projection>(); var id = Guid.NewGuid(); Task <Movie> responseTask = Task.FromResult(movie); _mockMoviesRepository = new Mock <IMoviesRepository>(); _mockMoviesRepository.Setup(x => x.GetByIdAsync(_movieDomainModel.Id)).Returns(responseTask); Task <IEnumerable <Projection> > responseTaskProjection = Task.FromResult(listaProjekcija); _mockProjectionsRepository = new Mock <IProjectionsRepository>(); _mockProjectionsRepository.Setup(y => y.GetAllFromOneMovie(_movieDomainModel.Id)).Returns(responseTaskProjection); _mockMoviesRepository.Setup(x => x.Update(movie)).Returns(movieNull); MovieService movieController = new MovieService(_mockMoviesRepository.Object, _mockProjectionsRepository.Object, _mockMovieTagsRepository.Object, _mockTicketRepository.Object, _mockTagRepository.Object); //Act var resultAction = movieController.UpdateMovie(movieDomainModel).ConfigureAwait(false).GetAwaiter().GetResult(); var result = resultAction; //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(CreateMovieResultModel)); Assert.AreEqual(expectedResult.ErrorMessage, result.ErrorMessage); Assert.AreEqual(expectedResult.IsSuccessful, result.IsSuccessful); }
public void MovieService_UpdateMovieStatus_ReturnCreateMovieResultModel_NotSuccessful_ProjectionInFuture() { //Arrange Movie movie = _movie; var expectedResult = new CreateMovieResultModel() { ErrorMessage = "Error occured while updating current movie status. This movie has projection in future, so it can not be not current.", IsSuccessful = false }; IEnumerable <Projection> listaProjekcija = _projections; var id = Guid.NewGuid(); Task <Movie> responseTask = Task.FromResult(movie); _mockMoviesRepository = new Mock <IMoviesRepository>(); _mockMoviesRepository.Setup(x => x.GetByIdAsync(id)).Returns(responseTask); Task <IEnumerable <Projection> > responseTaskProjection = Task.FromResult(listaProjekcija); _mockProjectionsRepository = new Mock <IProjectionsRepository>(); _mockProjectionsRepository.Setup(y => y.GetAllFromOneMovie(id)).Returns(responseTaskProjection); MovieService movieController = new MovieService(_mockMoviesRepository.Object, _mockProjectionsRepository.Object, _mockMovieTagsRepository.Object, _mockTicketRepository.Object, _mockTagRepository.Object); //Act var resultAction = movieController.UpdateMovieStatus(id).ConfigureAwait(false).GetAwaiter().GetResult(); var result = resultAction; //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(CreateMovieResultModel)); Assert.AreEqual(expectedResult.ErrorMessage, result.ErrorMessage); Assert.AreEqual(expectedResult.IsSuccessful, result.IsSuccessful); }
public void MovieService_UpdateMovieStatus_ReturnCreateMovieResultModel_Successful_Update() { Movie movie = _movie; Movie movieUpdated = _movie; movieUpdated.Current = false; var expectedResult = new CreateMovieResultModel() { ErrorMessage = null, IsSuccessful = true }; IEnumerable <Projection> listaProjekcija = new List <Projection>(); var id = Guid.NewGuid(); Task <Movie> responseTask = Task.FromResult(movie); _mockMoviesRepository = new Mock <IMoviesRepository>(); _mockMoviesRepository.Setup(x => x.GetByIdAsync(id)).Returns(responseTask); Task <IEnumerable <Projection> > responseTaskProjection = Task.FromResult(listaProjekcija); _mockProjectionsRepository = new Mock <IProjectionsRepository>(); _mockProjectionsRepository.Setup(y => y.GetAllFromOneMovie(id)).Returns(responseTaskProjection); _mockMoviesRepository.Setup(x => x.Update(It.IsAny <Movie>())).Returns(movieUpdated); MovieService movieController = new MovieService(_mockMoviesRepository.Object, _mockProjectionsRepository.Object, _mockMovieTagsRepository.Object, _mockTicketRepository.Object, _mockTagRepository.Object); //Act var resultAction = movieController.UpdateMovieStatus(id).ConfigureAwait(false).GetAwaiter().GetResult(); var result = resultAction; //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(CreateMovieResultModel)); Assert.AreEqual(expectedResult.ErrorMessage, result.ErrorMessage); Assert.AreEqual(expectedResult.IsSuccessful, result.IsSuccessful); Assert.IsFalse(result.Movie.Current); }
public async Task <CreateMovieResultModel> UpdateMovieStatus(Guid id) { var item = await _moviesRepository.GetByIdAsync(id); if (item == null) { return(null); } //ako je current=true i ima projekciju, ne moze biti false var projections = await _projectionsRepository.GetAllFromOneMovie(id); if (item.Current) { if (projections != null) { foreach (var projection in projections) { if (projection.DateTime > DateTime.Now) { return(new CreateMovieResultModel { IsSuccessful = false, ErrorMessage = Messages.MOVIE_CURRENT_TO_NOT_CURRENT_UPDATE_ERROR }); } } } } var currentNewValue = !item.Current; Movie movie = new Movie() { Id = item.Id, Title = item.Title, Current = currentNewValue, Year = item.Year, Rating = item.Rating }; var data = _moviesRepository.Update(movie); if (data == null) { return(new CreateMovieResultModel { IsSuccessful = false, ErrorMessage = Messages.MOVIE_CURRENT_UPDATE_ERROR }); } _moviesRepository.Save(); CreateMovieResultModel domainModel = new CreateMovieResultModel() { IsSuccessful = true, ErrorMessage = null, Movie = new MovieDomainModel { Id = data.Id, Current = data.Current } }; return(domainModel); }
public async Task <CreateMovieResultModel> UpdateMovie(MovieDomainModel updateMovie) { var item = await _moviesRepository.GetByIdAsync(updateMovie.Id); var projections = await _projectionsRepository.GetAllFromOneMovie(updateMovie.Id); if (projections != null) { if (item.Current.Equals(true) && updateMovie.Current.Equals(false)) { List <Projection> checkProjection = projections.ToList(); var dateTimeNow = DateTime.Now; foreach (var projection in checkProjection) { if (projection.DateTime > dateTimeNow) { return(new CreateMovieResultModel { IsSuccessful = false, ErrorMessage = Messages.MOVIE_CURRENT_TO_NOT_CURRENT_UPDATE_ERROR }); } } } } Movie movie = new Movie() { Id = updateMovie.Id, Title = updateMovie.Title, Current = updateMovie.Current, Year = updateMovie.Year, Rating = updateMovie.Rating }; var data = _moviesRepository.Update(movie); if (data == null) { return(new CreateMovieResultModel { IsSuccessful = false, ErrorMessage = Messages.MOVIE_CURRENT_UPDATE_ERROR }); } _moviesRepository.Save(); CreateMovieResultModel createMovieResultModel = new CreateMovieResultModel { ErrorMessage = null, IsSuccessful = true, Movie = new MovieDomainModel() { Id = data.Id, Title = data.Title, Current = data.Current, Year = data.Year, Rating = data.Rating ?? 0 }, }; return(createMovieResultModel); }