public async Task GetAllVotes()
        {
            //Arrange
            var dbName        = Guid.NewGuid().ToString();
            var numberOfVotes = 5;
            var fakeVotes     = new List <Vote>();

            using (var context = GetContext(dbName))
            {
                fakeVotes = GetVotes(numberOfVotes);
                for (int i = 0; i < numberOfVotes; i++)
                {
                    context.Votes.AddRange(fakeVotes);
                }
                await context.SaveChangesAsync();
            }

            using (var context = GetContext(dbName))
            {
                //Act
                IVotingServices service     = new VotingServices(context);
                var             ActualVotes = await service.GetVotesAsync();

                for (int i = 0; i < numberOfVotes; i++)
                {
                    //Assert
                    Assert.Equal(fakeVotes[i].VoterId, ActualVotes[i].VoterId);
                    Assert.Equal(fakeVotes[i].VotedFor, ActualVotes[i].VotedFor);
                }
            }
        }
        public async Task GetVoteByStringId()
        {
            //Arrange
            var dbName       = Guid.NewGuid().ToString();
            var fakeVoteId   = Guid.NewGuid();
            var fakeVotedFor = "Messi";
            var fakeVote     = new Vote {
                VoterId = fakeVoteId, VotedFor = fakeVotedFor
            };

            using (var context = GetContext(dbName))
            {
                context.Votes.Add(fakeVote);
                await context.SaveChangesAsync();
            }

            using (var context = GetContext(dbName))
            {
                //Act
                IVotingServices service    = new VotingServices(context);
                var             ActualVote = await service.GetVoteAsync(fakeVoteId.ToString());

                //Assert
                Assert.Equal(fakeVote.VoterId, ActualVote.VoterId);
                Assert.Equal(fakeVote.VotedFor, ActualVote.VotedFor);
            }
        }
        public async Task Vote()
        {
            //Arrange
            var dbName       = Guid.NewGuid().ToString();
            var fakeVoteId   = Guid.NewGuid();
            var fakeVotedFor = "Messi";
            var fakeVote     = new Vote {
                VoterId = fakeVoteId, VotedFor = fakeVotedFor
            };

            using (var context = GetContext(dbName))
            {
                //Act
                IVotingServices service = new VotingServices(context);
                await service.VoteAsync(fakeVote);
            }

            using (var context = GetContext(dbName))
            {
                var votesInDb = await context.Votes.CountAsync();

                var actualVote = await context.Votes.FirstAsync();

                //Assert
                Assert.Equal(1, votesInDb);
                Assert.Equal(fakeVote.VoterId, actualVote.VoterId);
                Assert.Equal(fakeVote.VotedFor, actualVote.VotedFor);
            }
        }
        public async Task TellIfVoteExistsByStringId()
        {
            //Arrange
            var dbName       = Guid.NewGuid().ToString();
            var fakeVoteId   = Guid.NewGuid();
            var fakeVotedFor = "Messi";
            var fakeVote     = new Vote {
                VoterId = fakeVoteId, VotedFor = fakeVotedFor
            };

            using (var context = GetContext(dbName))
            {
                context.Votes.Add(fakeVote);
                await context.SaveChangesAsync();
            }

            using (var context = GetContext(dbName))
            {
                //Act
                IVotingServices service     = new VotingServices(context);
                var             isVoteFound = await service.IsVoteExistsAsync(fakeVoteId.ToString());

                //Assert
                Assert.True(isVoteFound);
            }
        }
        public async Task TellIfVoteDoesNotExistByStringId()
        {
            //Arrange
            var dbName     = Guid.NewGuid().ToString();
            var fakeVoteId = Guid.NewGuid();

            using (var context = GetContext(dbName))
            {
                //Act
                IVotingServices service     = new VotingServices(context);
                var             isVoteFound = await service.IsVoteExistsAsync(fakeVoteId.ToString());

                //Assert
                Assert.False(isVoteFound);
            }
        }