public async Task FetchReadme_ReadmeNotFound()
        {
            // Arrange
            MockRestClient(null, HttpStatusCode.NotFound);
            DataSourceAdaptee = new GithubDataSourceAdaptee(ConfigurationMock, ClientFactoryMock.Object, Mapper);

            // Act
            Func <Task> act             = () => DataSourceAdaptee.FetchReadme(It.IsAny <string>(), It.IsAny <string>());
            string      retrievedReadme = await DataSourceAdaptee.FetchReadme(It.IsAny <string>(), It.IsAny <string>());

            // Assert
            act.Should().NotThrow();
            retrievedReadme.Should().BeNullOrEmpty();
        }
        public async Task FetchReadme_GoodFlow(
            [GithubDataSourceReadmeResourceResultDataSource] GithubDataSourceReadmeResourceResult resourceResult)
        {
            // Arrange
            MockRestClient(resourceResult, HttpStatusCode.OK);
            DataSourceAdaptee = new GithubDataSourceAdaptee(ConfigurationMock, ClientFactoryMock.Object, Mapper);

            // Act
            Action act = () => DataSourceAdaptee.FetchReadme(It.IsAny <string>(), It.IsAny <string>());
            string retrievedResourceResult = await DataSourceAdaptee.FetchReadme(It.IsAny <string>(), It.IsAny <string>());

            // Assert
            act.Should().NotThrow();
            retrievedResourceResult.Should().BeEquivalentTo(JsonConvert.SerializeObject(resourceResult));
        }
        public void FetchReadme_ResponseIsNotSuccessful()
        {
            // Arrange
            string errorMessage = "Invalid test request";

            MockRestClient(null, HttpStatusCode.BadRequest, errorMessage);
            DataSourceAdaptee = new GithubDataSourceAdaptee(ConfigurationMock, ClientFactoryMock.Object, Mapper);

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

            // Assert
            act.Should().ThrowExactly <ExternalException>().WithMessage(errorMessage);
        }