示例#1
0
        public void IfMovieIsNotChangedReturnError()
        {
            var date      = DateTime.Now;
            var guid      = Guid.NewGuid();
            var testMovie = new Movies()
            {
                Name        = "test1",
                ReleaseDate = date,
                TrailerUrl  = "test2",
                ImgUrl      = "test3",
                Description = "description",
                Id          = Guid.NewGuid()
            };
            var sut = new MoviesServiceForTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object);

            sut.MovieToReturn = testMovie;

            //Act
            var result = sut.UpdateMovie(testMovie);

            //Assert
            Assert.AreEqual(result.ErrorMsg, Constants.ErorsDict[ResultType.NoChanges]);
            Assert.AreEqual(result.ResulType, ResultType.NoChanges);
            Assert.AreEqual(sut.GetMovieCount, 1);
        }
示例#2
0
        public void CallMoviesRepoDeleteIfMovieExistsAndIsDeleted()
        {
            //Arrange
            var called    = 0;
            var guid      = Guid.NewGuid();
            var testMovie = new Movies()
            {
                Id = Guid.NewGuid()
            };
            var movieToAssert = new Movies()
            {
                IsDeleted = true
            };

            movies.Setup(x => x.Update(It.IsAny <Movies>())).Callback(() => { called++; });
            var sut = new MoviesServiceForTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object);

            sut.MovieToReturn = movieToAssert;

            //Act
            var result = sut.UndoDeleteById(testMovie.Id);

            //Assert
            Assert.AreEqual(movieToAssert.IsDeleted, false);
            Assert.AreEqual(called, 1);
            Assert.AreEqual(result.ErrorMsg, "Saved");
            Assert.AreEqual(result.ResulType, ResultType.Success);
            Assert.AreEqual(sut.GetMovieCount, 1);
        }
示例#3
0
        public void CallMoviesRepoDeleteIfMovieExistsAndIsNotDeleted()
        {
            //Arrange
            var called    = 0;
            var date      = DateTime.Now;
            var guid      = Guid.NewGuid();
            var testMovie = new Movies()
            {
                Name        = "test1",
                ReleaseDate = date,
                TrailerUrl  = "test2",
                ImgUrl      = "test3",
                Description = "description",
                Id          = guid,
                Genres      = new List <Genres>()
            };
            var testMovie2 = new Movies()
            {
                Name        = "test12",
                ReleaseDate = date,
                TrailerUrl  = "test2",
                ImgUrl      = "test3",
                Description = "description",
                Id          = guid,
                Genres      = new List <Genres>()
            };

            movies.Setup(x => x.Update(It.IsAny <Movies>())).Callback(() => { called++; });
            var sut = new MoviesServiceForTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object);

            sut.MovieToReturn = testMovie;

            //Act
            var result = sut.UpdateMovie(testMovie2);

            //Assert
            Assert.AreEqual(called, 1);
            Assert.AreEqual(sut.GetMovieCount, 1);
            Assert.AreEqual(sut.UpdateGenresCalled, 1);
            Assert.AreEqual(result.ErrorMsg, "Saved");
            Assert.AreEqual(result.ResulType, ResultType.Success);
        }
示例#4
0
        public void CallGetMovieAndReturnChangedResultIfDoesntExists()
        {
            //Arrange
            var guid      = Guid.NewGuid();
            var testMovie = new Movies()
            {
                Id = Guid.NewGuid()
            };
            var sut = new MoviesServiceForTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object);

            sut.MovieToReturn = (Movies)null;

            //Act
            var result = sut.UndoDeleteById(testMovie.Id);

            //Assert
            Assert.AreEqual(result.ErrorMsg, Constants.MovieNotExists);
            Assert.AreEqual(result.ResulType, ResultType.DoesntExists);
            Assert.AreEqual(sut.GetMovieCount, 1);
        }
示例#5
0
        public void CallGetMovieAndReturnChangedResultIfAlreadyExists()
        {
            //Arrange
            var guid      = Guid.NewGuid();
            var testMovie = new Movies()
            {
                Id = Guid.NewGuid()
            };
            var sut = new MoviesServiceForTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object);

            sut.MovieToReturn = new Movies();

            //Act
            var result = sut.AddMovie(testMovie);

            //Assert
            Assert.AreEqual(result.ErrorMsg, "Already Exists");
            Assert.AreEqual(result.ResulType, ResultType.AlreadyExists);
            Assert.AreEqual(sut.GetMovieCount, 1);
        }
示例#6
0
        public void MovieDoesntExistCallGenresRespoAllAndSaveChange()
        {
            //Arrange
            var called = 0;
            var guid   = Guid.NewGuid();
            var genre  = new Genres()
            {
                Name = "Test"
            };
            var genre2 = new Genres()
            {
                Name = "Test2"
            };
            var genres = new List <Genres>();

            genres.Add(genre);
            genres.Add(genre2);
            var testMovie = new Movies()
            {
                Genres = genres
            };
            var genresInDataBase = new List <Genres>();

            genresInDataBase.Add(genre);
            genresRepo.Setup(x => x.All()).Returns(genresInDataBase.AsQueryable());
            movies.Setup(x => x.Add(It.IsAny <Movies>())).Callback(() => { called++; });
            var sut = new MoviesServiceForTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object);

            sut.MovieToReturn = (Movies)null;

            //Act
            var result = sut.AddMovie(testMovie);

            //Assert
            Assert.AreEqual(called, 1);
            genresRepo.Verify(x => x.All(), Times.Exactly(2));
            Assert.AreEqual(result.ErrorMsg, "Saved");
            Assert.AreEqual(result.ResulType, ResultType.Success);
            Assert.AreEqual(sut.GetMovieCount, 1);
        }
示例#7
0
        public void CallGetMovieAndReturnChangedResultIfExistsButIsNotDeleted()
        {
            //Arrange
            var guid      = Guid.NewGuid();
            var testMovie = new Movies()
            {
                Id = Guid.NewGuid()
            };
            var sut = new MoviesServiceForTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object);

            sut.MovieToReturn = new Movies()
            {
                IsDeleted = false
            };

            //Act
            var result = sut.UndoDeleteById(testMovie.Id);

            //Assert
            Assert.AreEqual(result.ResulType, ResultType.AlreadyExists);
            Assert.AreEqual(sut.GetMovieCount, 1);
        }