public void SuccessfulCreateAndInsertOfAPlayer()
        {
            IPlayerRepository playerRepository = GetRepositoryWithEnrolledUnitOfWork();
            var preparedResult = PreparePoem<LegendAuthorityType, TranslationPoem>();
            Player player = new Player { PoemId = preparedResult.Item2.Id, UserProfileId = preparedResult.Item1.Id };

            RegisterDataStoreObject(player);
            Player actualPlayer = playerRepository.Get(p => p.Id == player.Id).FirstOrDefault();

            AssertPlayersAreEqual(player, actualPlayer);
        }
        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());
        }
 private void AssertPlayersAreEqual(Player expected, Player actualPlayer)
 {
     Assert.AreEqual(expected.Id, actualPlayer.Id);
     Assert.AreEqual(expected.PoemId, actualPlayer.PoemId);
     Assert.AreEqual(expected.UserProfileId, actualPlayer.UserProfileId);
 }