Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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);
        }