Ejemplo n.º 1
0
        public async Task GitRefIsAddedToUri()
        {
            var config     = new Config();
            var options    = Options.Create(config);
            var logger     = Substitute.For <ILogger <GithubFileFetcher> >();
            var httpClient = Substitute.For <GithubHttpClient>(options);

            httpClient.SendAsync(Any <HttpRequestMessage>()).Returns(new HttpResponseMessage
            {
                StatusCode = OK,
                Content    = expectedContent
            });

            var fetcher = new GithubFileFetcher(httpClient, options, logger);
            var result  = await fetcher.Fetch(url, filename, gitRef);

            await httpClient.Received().SendAsync(Is <HttpRequestMessage>(req => req.RequestUri == new Uri(expectedUrlWithRef)));
        }
Ejemplo n.º 2
0
        public async Task NoContentIsReturnedIfStatusCodeIsNotOk()
        {
            var config     = new Config();
            var options    = Options.Create(config);
            var logger     = Substitute.For <ILogger <GithubFileFetcher> >();
            var httpClient = Substitute.For <GithubHttpClient>(options);

            httpClient.SendAsync(Any <HttpRequestMessage>()).Returns(new HttpResponseMessage
            {
                StatusCode = NotFound,
                Content    = expectedContent
            });

            var fetcher = new GithubFileFetcher(httpClient, options, logger);
            var result  = await fetcher.Fetch(url, filename, gitRef);

            result.Should().BeNull();
        }
Ejemplo n.º 3
0
        public async Task GetMethodIsUsed()
        {
            var config     = new Config();
            var options    = Options.Create(config);
            var logger     = Substitute.For <ILogger <GithubFileFetcher> >();
            var httpClient = Substitute.For <GithubHttpClient>(options);

            httpClient.SendAsync(Any <HttpRequestMessage>()).Returns(new HttpResponseMessage
            {
                StatusCode = OK,
                Content    = expectedContent,
            });

            var fetcher = new GithubFileFetcher(httpClient, options, logger);
            var result  = await fetcher.Fetch(url, filename);

            await httpClient.Received().SendAsync(Is <HttpRequestMessage>(req => req.Method == HttpMethod.Get));
        }
Ejemplo n.º 4
0
 public PipelineDeployer(
     IAmazonS3 s3Client,
     Sha256SumComputer sumComputer,
     GithubFileFetcher fileFetcher,
     GithubStatusNotifier statusNotifier,
     DeployStackFacade stackDeployer,
     IOptions <Config> options,
     ILogger <PipelineDeployer> logger
     )
 {
     this.s3Client       = s3Client;
     this.config         = options.Value;
     this.sumComputer    = sumComputer;
     this.fileFetcher    = fileFetcher;
     this.statusNotifier = statusNotifier;
     this.stackDeployer  = stackDeployer;
     this.logger         = logger;
 }
Ejemplo n.º 5
0
        public async Task AcceptHeaderContainsGithubRaw()
        {
            var config     = new Config();
            var options    = Options.Create(config);
            var logger     = Substitute.For <ILogger <GithubFileFetcher> >();
            var httpClient = Substitute.For <GithubHttpClient>(options);

            httpClient.SendAsync(Any <HttpRequestMessage>()).Returns(new HttpResponseMessage
            {
                StatusCode = OK,
                Content    = expectedContent
            });

            var fetcher = new GithubFileFetcher(httpClient, options, logger);
            var result  = await fetcher.Fetch(url, filename, gitRef);

            await httpClient.Received().SendAsync(Is <HttpRequestMessage>(req =>
                                                                          req.Headers.Accept.Any(header => header.MediaType == "application/vnd.github.v3.raw")
                                                                          ));
        }