public void Given_a_store_with_comments_for_multiple_pages_when_getting_latest_comments_then_only_comments_for_provided_page_language_is_returned()
        {
            // Arrange
            var pageCommentList = new List<PageComment>();
            pageCommentList.Add(new PageComment { PageId = 1, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 2, PageLanguage = "en" });

            var dataStoreFactory = TestFixtureFactory.CreateStoreFactoryWithStoreContainingItems(pageCommentList);

            var ddsCommentRepository = new DynamicDataStoreCommentRepository(dataStoreFactory);

            // Act
            var latestComments = ddsCommentRepository.GetLatestComments(3, "sv");

            // Assert
            Assert.That(latestComments, Contains.Item(pageCommentList[0]));
            Assert.That(latestComments, !Contains.Item(pageCommentList[1]));
        }
        public void Given_a_store_with_comments_for_multiple_pages_when_getting_latest_comments_then_the_comments_are_sorted_by_created_date()
        {
            // Arrange
            var pageCommentList = new List<PageComment>();
            pageCommentList.Add(new PageComment { PageId = 1, PageLanguage = "sv", Created = DateTime.Parse("2010-01-01")});
            pageCommentList.Add(new PageComment { PageId = 2, PageLanguage = "sv", Created = DateTime.Parse("2010-01-02") });

            var dataStoreFactory = TestFixtureFactory.CreateStoreFactoryWithStoreContainingItems(pageCommentList);

            var ddsCommentRepository = new DynamicDataStoreCommentRepository(dataStoreFactory);

            // Act
            var latestComments = ddsCommentRepository.GetLatestComments(3, "sv");

            // Assert
            Assert.That(latestComments.First().PageId, Is.EqualTo(2));
            Assert.That(latestComments.Last().PageId, Is.EqualTo(1));
        }
        public void Given_a_store_with_comments_for_multiple_pages_when_getting_latest_comments_then_only_the_specified_count_is_returned()
        {
            // Arrange
            const int count = 2;
            var pageCommentList = new List<PageComment>();
            pageCommentList.Add(new PageComment { PageId = 1, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 2, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 3, PageLanguage = "sv" });

            var dataStoreFactory = TestFixtureFactory.CreateStoreFactoryWithStoreContainingItems(pageCommentList);

            var ddsCommentRepository = new DynamicDataStoreCommentRepository(dataStoreFactory);

            // Act
            var latestComments = ddsCommentRepository.GetLatestComments(count, "sv");

            // Assert
            Assert.That(latestComments.Count(), Is.EqualTo(count));
        }
        public void Given_a_store_with_comments_for_multiple_pages_when_getting_most_commented_page_ids_then_the_pages_with_most_comments_are_returned()
        {
            // Arrange
            const int count = 2;
            var pageCommentList = new List<PageComment>();
            pageCommentList.Add(new PageComment { PageId = 1, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 1, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 1, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 2, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 2, PageLanguage = "sv" });
            pageCommentList.Add(new PageComment { PageId = 3, PageLanguage = "sv" });

            var dataStoreFactory = TestFixtureFactory.CreateStoreFactoryWithStoreContainingItems(pageCommentList);

            var ddsCommentRepository = new DynamicDataStoreCommentRepository(dataStoreFactory);

            // Act
            var mostCommentedPageIds = ddsCommentRepository.GetMostCommentedPageIds(count, "sv");

            // Assert
            Assert.That(mostCommentedPageIds.First(), Is.EqualTo(1));
            Assert.That(mostCommentedPageIds.Last(), Is.EqualTo(2));
            Assert.That(mostCommentedPageIds, !Contains.Item(3));
        }