public void AddAllPreviousMovieGenres_WhenMovieIsRestored() { // Arrange var contextOptions = new DbContextOptionsBuilder <AlphaCinemaContext>() .UseInMemoryDatabase(databaseName: "AddAllPreviousMovieGenres_WhenMovieIsRestored") .Options; movie.IsDeleted = true; movieGenre.IsDeleted = true; movie.MovieGenres.Add(movieGenre); //Act using (var actContext = new AlphaCinemaContext(contextOptions)) { actContext.Movies.Add(movie); actContext.SaveChanges(); var unitOfWork = new UnitOfWork(actContext); var addMovieCommand = new MovieServices(unitOfWork); addMovieCommand.AddNewMovie(testMovieName, testMovieDescription, testMovieReleaseYear, testMovieDuration); } //Assert using (var assertContext = new AlphaCinemaContext(contextOptions)) { Assert.IsFalse(movie.MovieGenres.First().IsDeleted); } }
public void ThrowArgumentException_WhenMovieNameIsEmpty() { //Arrange int maxMovieNameLength = 50; var longMovieName = new string('m', maxMovieNameLength + 1); var movieService = new MovieServices(unitOfWork.Object); //Act and Assert Assert.ThrowsException <NullReferenceException>(() => movieService.AddNewMovie("", testMovieDescription, testMovieReleaseYear, testMovieDuration)); }
public void ThrowEntityAlreadyExistsException_WhenMovieExist() { //Arrange unitOfWork.Setup(x => x.Movies).Returns(movieRepoMock.Object); movieRepoMock.Setup(repo => repo.AllAndDeleted()).Returns(predifinedListOfMovies.AsQueryable()); //Act and Assert var addMovieCommand = new MovieServices(unitOfWork.Object); Assert.ThrowsException <EntityAlreadyExistsException>(() => addMovieCommand.AddNewMovie(testMovieName, testMovieDescription, testMovieReleaseYear, testMovieDuration)); }
public void ThrowArgumentException_WhenMovieDescriptionIsNotInRange() { //Arrange int maxMovieNameLength = 150; var longMovieDescription = new string('m', maxMovieNameLength + 1); var movieService = new MovieServices(unitOfWork.Object); //Act and Assert Assert.ThrowsException <ArgumentException>(() => movieService.AddNewMovie(testMovieName, longMovieDescription, testMovieReleaseYear, testMovieDuration)); }
public void UnmarkMovieAsDeleted_WhenMovieExistButIsDeleted() { //Arrange movie.IsDeleted = true; unitOfWork.Setup(x => x.Movies).Returns(movieRepoMock.Object); unitOfWork.Setup(p => p.Projections.AllAndDeleted()).Returns(new List <Projection>().AsQueryable()); unitOfWork.Setup(mg => mg.MovieGenres.AllAndDeleted()).Returns(new List <MovieGenre>().AsQueryable()); movieRepoMock.Setup(repo => repo.AllAndDeleted()).Returns(predifinedListOfMovies.AsQueryable()); //Act var addMovieCommand = new MovieServices(unitOfWork.Object); addMovieCommand.AddNewMovie(testMovieName, testMovieDescription, testMovieReleaseYear, testMovieDuration); //Assert Assert.IsFalse(movie.IsDeleted); }
public void CallAddMethodOnMovie_WhenParametersAreCorrect() { //Arrange var movieMock = new Mock <Movie>(); unitOfWork.Setup(x => x.Movies).Returns(movieRepoMock.Object); movieRepoMock .Setup(repo => repo.Add(It.IsAny <Movie>())) .Callback <Movie>((movie) => { predifinedListOfMovies.Add(movieMock.Object); }); //Act var addMovieCommand = new MovieServices(unitOfWork.Object); addMovieCommand.AddNewMovie(testMovieName, testMovieDescription, testMovieReleaseYear, testMovieDuration); //Assert Assert.AreEqual(2, predifinedListOfMovies.Count); }