public void RatingVote_ratingCalculation_ratingCalculationIsCorrectAndPostRatingSaveOnce() { //Arange var postBo = new PostsBo(_postsRepo, _postRatigVotesRepo, _avatarImgRepo); const int userId = 1; const int postId = 1; const int rate = 3; //rating = (postRait * voutesNum + rate) / (voutesNum + 1); _postsRepo .GetItem(Arg.Is<int>(x => x >= 1)) .Returns(new Post { Id = postId, UserId = userId, Rating = 3, VotesNum = 2 }); _postRatigVotesRepo .Query() .Returns(new List<PostRatigVote> { new PostRatigVote { Id=2, UserId = 2, PostId = 2 } }.AsQueryable()); //Act postBo.RatingVote(userId, postId, rate); //Assert var post = _postsRepo.GetItem(postId); Assert.AreEqual(3, post.Rating); _postRatigVotesRepo .Received(1).Create(Arg.Is<PostRatigVote>(x => x.UserId == userId && x.PostId == postId)); _postRatigVotesRepo .Received(1).Save(); _postsRepo .Received(1).Save(); }
public void RatingVote_PostRatingVoteAlreadyExist_ratingMarkNotAdded() { //Arange var postBo = new PostsBo(_postsRepo, _postRatigVotesRepo, _avatarImgRepo); const int userId = 1; const int postId = 1; const int rate = 2; _postRatigVotesRepo .Query() .Returns(new List<PostRatigVote> { new PostRatigVote { Id = 1, UserId = 1, PostId = 1 } }.AsQueryable()); //Act postBo.RatingVote(userId, postId, rate); //Assert _postRatigVotesRepo .Received(0).Create(Arg.Is<PostRatigVote>(x => x.UserId == userId && x.PostId == postId)); }