public async Task WhenUserVoteForSecondTimeTheVoteIsAddedIfItHasDifferentValue() { var list = new List <Vote>(); var mockRepository = new Mock <IDeletableEntityRepository <Vote> >(); mockRepository .Setup(x => x.All()) .Returns(list.AsQueryable()); mockRepository .Setup(x => x.AddAsync(It.IsAny <Vote>())) .Callback((Vote vote) => list.Add(vote)); var service = new VotesService(mockRepository.Object); await service.CreateAsync(new CreateVoteDTO { ForUserId = "a", VoteValue = true, VoterId = "b", }); await service.CreateAsync(new CreateVoteDTO { ForUserId = "a", VoteValue = false, VoterId = "b", }); Assert.Single(list.Where(x => !x.IsDeleted && x.ForUserId == "a")); }
public async Task GetAllByUsernameShouldHaveCountTwo() { var list = new List <Vote>(); var mockRepository = new Mock <IDeletableEntityRepository <Vote> >(); mockRepository .Setup(x => x.AllAsNoTracking()) .Returns(list.AsQueryable()); mockRepository .Setup(x => x.AddAsync(It.IsAny <Vote>())) .Callback((Vote vote) => list.Add(vote)); var service = new VotesService(mockRepository.Object); await service.CreateAsync(new CreateVoteDTO { ForUserId = "a", VoteValue = true, VoterId = "b", }); await service.CreateAsync(new CreateVoteDTO { ForUserId = "a", VoteValue = true, VoterId = "c", }); Assert.Equal(2, service.GetAllByUserId <VotesViewModel>("a").Count()); }
public async Task WhenTwoUsersVoteTheVotesCountIsIncreasedByTwo() { var list = new List <Vote>(); var mockRepository = new Mock <IDeletableEntityRepository <Vote> >(); mockRepository .Setup(x => x.All()) .Returns(list.AsQueryable()); mockRepository .Setup(x => x.AddAsync(It.IsAny <Vote>())) .Callback((Vote vote) => list.Add(vote)); var service = new VotesService(mockRepository.Object); await service.CreateAsync(new CreateVoteDTO { ForUserId = "a", VoteValue = true, VoterId = "b", }); await service.CreateAsync(new CreateVoteDTO { ForUserId = "a", VoteValue = true, VoterId = "c", }); Assert.Equal(2, list.Where(x => !x.IsDeleted && x.ForUserId == "a").Count()); }
public void GetVoteShouldReturnTheCorrectVote() { var list = new List <Vote>(); var mockRepository = new Mock <IDeletableEntityRepository <Vote> >(); mockRepository .Setup(x => x.AllAsNoTracking()) .Returns(list.AsQueryable()); mockRepository .Setup(x => x.AddAsync(It.IsAny <Vote>())) .Callback((Vote vote) => list.Add(vote)); var service = new VotesService(mockRepository.Object); service.CreateAsync(new CreateVoteDTO { ForUserId = "a", VoteValue = true, VoterId = "c", }).GetAwaiter(); var vote = service.GetVote <VotesViewModel>("a", "c"); Assert.True(vote.VoteValue); }