public void GetScratchVersesFromASpecificPoemForASpecificUser() { IVerseRepository verseRepository = GetRepositoryWithEnrolledUnitOfWork(); AuthorityType authorityType = new LegendAuthorityType(); RegisterDataStoreObject(authorityType); UserProfile profile1 = CreateUserProfile(authorityType); RegisterDataStoreObject(profile1); UserProfile profile2 = CreateUserProfile(authorityType); RegisterDataStoreObject(profile2); Poem poem = CreatePoem<ClassicalPoem>(profile1.Id); RegisterDataStoreObject(poem); VerseType verseType = new ScratchVerseType(); RegisterDataStoreObject(verseType); int numberOfVersesWrittenForOneUser = Rand.Next(10, 20); int numberOfVersesWrittenByAnotherUser = Rand.Next(10, 20); DateTime date = DateTime.Now; for (int i = 0; i < numberOfVersesWrittenForOneUser; i++) { Verse verse = new Verse { AuthorProfileId = profile1.Id, FromIpAddress = "127.0.0.1", LastEdit = DateTime.UtcNow, Location = "Chisinau", OrderNr = 1, PoemId = poem.Id, Text = Guid.NewGuid().ToString(), VerseTypeId = verseType.Id, WrittenAt = date - TimeSpan.FromDays(10) }; RegisterDataStoreObject(verse); } for (int i = 0; i < numberOfVersesWrittenByAnotherUser; i++) { Verse verse = new Verse { AuthorProfileId = profile2.Id, FromIpAddress = "127.0.0.1", LastEdit = DateTime.UtcNow, Location = "Chisinau", OrderNr = 1, PoemId = poem.Id, Text = Guid.NewGuid().ToString(), VerseTypeId = verseType.Id, WrittenAt = date - TimeSpan.FromDays(10) }; RegisterDataStoreObject(verse); } var versesForProfile1 = verseRepository.GetVersesFromPoemForUser(poem.Id, profile1.Id); var versesForProfile2 = verseRepository.GetVersesFromPoemForUser(poem.Id, profile2.Id); var allVerses = verseRepository.GetVersesFromPoem(poem.Id); Assert.AreEqual(numberOfVersesWrittenForOneUser, versesForProfile1.Count()); Assert.AreEqual(numberOfVersesWrittenByAnotherUser, versesForProfile2.Count()); Assert.AreEqual(numberOfVersesWrittenByAnotherUser + numberOfVersesWrittenForOneUser, allVerses.Count()); }
public void GetPoemsForAPlayer() { IPlayerRepository playerRepository = GetRepositoryWithEnrolledUnitOfWork(); AuthorityType authorityType = new LegendAuthorityType(); RegisterDataStoreObject(authorityType); UserProfile initialAuthor = CreateUserProfile(authorityType); RegisterDataStoreObject(initialAuthor); const int NumberOfArchivedPoems = 10; const int NumberOfActivePoems = 5; for (int i = 0; i < NumberOfArchivedPoems; i++) { Poem poem = CreatePoem<ClassicalPoem>(initialAuthor.Id); poem.IsArchived = true; RegisterDataStoreObject(poem); Player player = new Player { PoemId = poem.Id, UserProfileId = initialAuthor.Id }; RegisterDataStoreObject(player); } for (int i = 0; i < NumberOfActivePoems; i++) { Poem poem = CreatePoem<ClassicalPoem>(initialAuthor.Id); poem.IsArchived = false; RegisterDataStoreObject(poem); Player player = new Player { PoemId = poem.Id, UserProfileId = initialAuthor.Id }; RegisterDataStoreObject(player); } var archivedPoems = playerRepository.GetArchiveGamesFor(initialAuthor.Id); var activePoems = playerRepository.GetActiveGamesFor(initialAuthor.Id); var totalPoems = playerRepository.GetGamesFor(initialAuthor.Id); Assert.AreEqual(NumberOfArchivedPoems, archivedPoems.Count()); Assert.AreEqual(NumberOfActivePoems, activePoems.Count()); Assert.AreEqual(NumberOfActivePoems + NumberOfArchivedPoems, totalPoems.Count()); }