public void IfItIsNotAlreadyLikedOrDislikedMovieExistsAndUsersExistsAndItIsDislikeCallDislikesRepoAdd() { //Arrange var called = 0; var guid = Guid.NewGuid(); List <Dislikes> dislikes = new List <Dislikes>(); dislikesRepo.Setup(x => x.All()).Returns(dislikes.AsQueryable()); dislikesRepo.Setup(x => x.Add(It.IsAny <Dislikes>())).Callback(() => { called++; }); var sut = new VoteServiceTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object); sut.UserToReturn = new Users() { UserName = "******" }; sut.MovieToReturn = new Movies() { Id = guid }; //Act var result = sut.LikeOrDislikeAMovie("User1", guid, false); //Assert Assert.AreEqual(called, 1); Assert.AreEqual(sut.GetCurrentUserCalled, 1); Assert.AreEqual(sut.GetMovieCount, 1); Assert.AreEqual(sut.SaveChangesCalled, 1); Assert.AreEqual(result.ErrorMsg, "Changed"); Assert.AreEqual(result.ResulType, ResultType.Success); }
public void IfItIsNotAlreadyLikedOrDislikedReturnResultChangedIfUserNotFound() { //Arrange List <Likes> likes = new List <Likes>(); likesRepo.Setup(x => x.All()).Returns(likes.AsQueryable()); var sut = new VoteServiceTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object); sut.UserToReturn = (Users)null; //Act var result = sut.LikeOrDislikeAMovie("User1", Guid.NewGuid(), true); //Assert Assert.AreEqual(sut.GetCurrentUserCalled, 1); Assert.AreEqual(result.ErrorMsg, "Changed"); }
public void IfIsAlreadyDislikedReturnErrorResult() { //Arrange List <Dislikes> dislikes = new List <Dislikes>(); var dislike1 = new Dislikes { User = new Users() { UserName = "******" }, Movie = new Movies() { Id = Guid.NewGuid() } }; var dislike2 = new Dislikes { User = new Users() { UserName = "******" }, Movie = new Movies() { Id = Guid.NewGuid() } }; dislikes.Add(dislike1); dislikes.Add(dislike2); dislikesRepo.Setup(x => x.All()).Returns(dislikes.AsQueryable()); var sut = new VoteServiceTest(movies.Object, genresRepo.Object, commentsRepo.Object, userRepo.Object, likesRepo.Object, dislikesRepo.Object, saver.Object); //Act var result = sut.LikeOrDislikeAMovie(dislike1.User.UserName, dislike1.Movie.Id, false); //Assert likesRepo.Verify(x => x.All(), Times.Exactly(1)); Assert.AreEqual(result.ResulType, ResultType.AlreadyExists); Assert.AreEqual(result.ErrorMsg, Constants.ThisUserAlreadyLikedOrDisliked); }