public void FetchAllGithubProjects_ResponseIsNotSuccessful()
        {
            // Arrange
            string errorMessage = "Invalid test request";

            MockRestClient(new GithubDataSourceResourceResult[0], HttpStatusCode.BadRequest, errorMessage);
            DataSourceAdaptee = new GithubDataSourceAdaptee(ConfigurationMock, ClientFactoryMock.Object, Mapper);

            // Act
            Func <Task> act = () => DataSourceAdaptee.FetchAllGithubProjects(It.IsAny <string>());

            // Assert
            act.Should().ThrowExactly <ExternalException>()
            .WithMessage(errorMessage);
        }
        public async Task FetchAllGithubProjects_GoodFlow(
            [GithubDataSourceResourceResultDataSource(30)] IEnumerable <GithubDataSourceResourceResult> resourceResults)
        {
            // Arrange
            MockRestClient(resourceResults, HttpStatusCode.OK);
            DataSourceAdaptee = new GithubDataSourceAdaptee(ConfigurationMock, ClientFactoryMock.Object, Mapper);

            // Act
            Action act = () => DataSourceAdaptee.FetchAllGithubProjects(It.IsAny <string>());
            IEnumerable <GithubDataSourceResourceResult> retrievedResourceResults = await DataSourceAdaptee.FetchAllGithubProjects(It.IsAny <string>());

            // Assert
            act.Should().NotThrow();
            retrievedResourceResults.Should().BeEquivalentTo(resourceResults);
        }