Ejemplo n.º 1
0
        public async Task When2UsersVoteForTheSameProductTheAverageVoteShouldBeCorrect()
        {
            var list     = new List <Vote>();
            var mockRepo = new Mock <IRepository <Vote> >();

            mockRepo.Setup(x => x.All()).Returns(list.AsQueryable());
            mockRepo.Setup(x => x.AddAsync(It.IsAny <Vote>())).Callback((Vote vote) => list.Add(vote));
            var service = new VotesService(mockRepo.Object);

            await service.SetVoteASync(2, "baiGergi", 5);

            await service.SetVoteASync(2, "baiPesho", 1);

            await service.SetVoteASync(2, "baiGergi", 2);

            mockRepo.Verify(x => x.AddAsync(It.IsAny <Vote>()), Times.Exactly(2));

            Assert.Equal(2, list.Count);
            Assert.Equal(1.5, service.GetAverageVotes(2));
        }
Ejemplo n.º 2
0
        public async Task WhenUserVotes2TimesOnly1VoteShouldBeCounted()
        {
            var list     = new List <Vote>();
            var mockRepo = new Mock <IRepository <Vote> >();

            mockRepo.Setup(x => x.All()).Returns(list.AsQueryable());
            mockRepo.Setup(x => x.AddAsync(It.IsAny <Vote>())).Callback((Vote vote) => list.Add(vote));
            var service = new VotesService(mockRepo.Object);

            await service.SetVoteASync(1, "1", 1);

            await service.SetVoteASync(1, "1", 5);

            await service.SetVoteASync(1, "1", 5);

            await service.SetVoteASync(1, "1", 5);

            await service.SetVoteASync(1, "1", 5);

            Assert.Single(list);
            Assert.Equal(5, list.First().Value);
        }