Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }