def test_should_fetch_each_piece_of_content_from_api(self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub('client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator
        )
        data_source.fetch_data()
        self.assertTrue(multi_content_data_source.fetch_all_was_called)
    def test_should_should_set_a_list_of_paths_on_multi_content_data_source(self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub('client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator
        )
        expected_content_ids = ["/commentisfree/2013/apr/14/thatcher-ding-dong-bbc-charlie-brooker", "/music/2013/apr/14/justin-bieber-anne-frank-belieber"]
        data_source.fetch_data()
        self.assertListEqual(expected_content_ids,multi_content_data_source.content_ids)
    def test_should_call_interpolator_with_shared_counts_and_content_list(self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub('client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator
        )
        data_source.fetch_data()
        self.assertEquals(api_data, shared_count_interpolator.content_list)
        self.assertEquals(comment_count_list, shared_count_interpolator.comment_count_list)
    def test_should_fetch_each_piece_of_content_from_api(self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub(
            'client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(
            n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator)
        data_source.fetch_data()
        self.assertTrue(multi_content_data_source.fetch_all_was_called)
    def test_should_call_interpolator_with_shared_counts_and_content_list(
            self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub(
            'client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(
            n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator)
        data_source.fetch_data()
        self.assertEquals(api_data, shared_count_interpolator.content_list)
        self.assertEquals(comment_count_list,
                          shared_count_interpolator.comment_count_list)
    def test_should_should_set_a_list_of_paths_on_multi_content_data_source(
            self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub(
            'client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(
            n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator)
        expected_content_ids = [
            "/commentisfree/2013/apr/14/thatcher-ding-dong-bbc-charlie-brooker",
            "/music/2013/apr/14/justin-bieber-anne-frank-belieber"
        ]
        data_source.fetch_data()
        self.assertListEqual(expected_content_ids,
                             multi_content_data_source.content_ids)
    def test_should_return_interpolated_content(self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub('client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator
        )
        data = data_source.fetch_data()
        self.assertEquals(list('Interpolated content'), data)
    def test_should_return_interpolated_content(self):
        multi_content_data_source = IdRememberingMultiContentDataSourceStub(
            'client')
        most_shared_fetcher = StubMostSharedFetcher()
        shared_count_interpolator = SharedCountInterpolator()

        data_source = MostSharedDataSource(
            n_items=23,
            multi_content_data_source=multi_content_data_source,
            most_shared_fetcher=most_shared_fetcher,
            shared_count_interpolator=shared_count_interpolator)
        data = data_source.fetch_data()
        self.assertEquals(list('Interpolated content'), data)