public void IsProfileEligibleForVoteAlreadyVoted() { IVerseVoteRepository repository = GetRepositoryWithEnrolledUnitOfWork(); Verse verse = CreateAndRegisterVerse<CandidateVerseType, NoviceAuthorityType, HaikuPoem>(); var profile = CreateAndRegisterUserProfile<LegendAuthorityType>(); VerseVote verseVote = new VerseVote { Amount = Rand.Next(0, 50), Date = DateTime.UtcNow, UserProfileId = profile.Id, VerseId = verse.Id }; RegisterDataStoreObject(verseVote); var isEligible = repository.IsProfileEligibleForVote(verse.Id, profile.Id); Assert.IsFalse(isEligible); }
public void GetVerseRating() { IVerseVoteRepository repository = GetRepositoryWithEnrolledUnitOfWork(); Verse verse = CreateAndRegisterVerse<CandidateVerseType, NoviceAuthorityType, HaikuPoem>(); var profileVoter = CreateAndRegisterUserProfile<LegendAuthorityType>(); int numberOfVerseVotes = Rand.Next(0, 50); double expected = 0; for (int i = 0; i < numberOfVerseVotes; i++) { VerseVote verseVote = new VerseVote { Amount = Rand.Next(0, 50), Date = DateTime.UtcNow, UserProfileId = profileVoter.Id, VerseId = verse.Id }; expected += verseVote.Amount; RegisterDataStoreObject(verseVote); } var actualAmount = repository.GetVerseRating(verse.Id); Assert.IsTrue(Math.Abs(actualAmount - expected) < 0.00001); }
public void SuccessfulCreateAndInsertOfAVerseVote() { IVerseVoteRepository repository = GetRepositoryWithEnrolledUnitOfWork(); Verse verse = CreateAndRegisterVerse<CandidateVerseType, NoviceAuthorityType, HaikuPoem>(); var profileVoter = CreateAndRegisterUserProfile<LegendAuthorityType>(); VerseVote verseVote = new VerseVote { Amount = Rand.Next(0, 50), Date = DateTime.UtcNow, UserProfileId = profileVoter.Id, VerseId = verse.Id }; RegisterDataStoreObject(verseVote); var actualVote = repository.Get((vote) => vote.Id == verseVote.Id).FirstOrDefault(); Assert.IsNotNull(actualVote); Assert.AreEqual(verseVote.Id, actualVote.Id); Assert.AreEqual(verseVote.Amount, actualVote.Amount); Assert.AreEqual(verseVote.Date, actualVote.Date); Assert.AreEqual(verseVote.UserProfileId, actualVote.UserProfileId); Assert.AreEqual(verseVote.VerseId, actualVote.VerseId); }