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