public void CopyHeadersFromCrtRequestTest() { var crtRequest = new Aws.Crt.Http.HttpRequest { Headers = new[] { new Aws.Crt.Http.HttpHeader("a", "a"), new Aws.Crt.Http.HttpHeader("b", "b") } }; var mock = new Mock <IRequest>(); mock.SetupAllProperties(); mock.SetupGet(x => x.Headers).Returns(new Dictionary <string, string> { { "c", "c" }, // this is only on the SDK request so we expect it to be replaced by "a" and "b" from CRT }); var sdkRequest = mock.Object; CrtHttpRequestConverter.CopyHeadersFromCrtRequest(sdkRequest, crtRequest); // Verify that we've replaced the SDK request's headers with all of the CRT request's headers Assert.Equal(2, sdkRequest.Headers.Count); Assert.True(sdkRequest.Headers.ContainsKey("a")); Assert.True(sdkRequest.Headers.ContainsKey("b")); Assert.Equal("a", sdkRequest.Headers["a"]); Assert.Equal("b", sdkRequest.Headers["b"]); }
public void ExtractSignedHeadersTest() { var crtRequest = new Aws.Crt.Http.HttpRequest(); crtRequest.Headers = new Aws.Crt.Http.HttpHeader[] { new Aws.Crt.Http.HttpHeader("a", "a"), new Aws.Crt.Http.HttpHeader("Authorization", "AWS4-ECDSA-P256-SHA256 Credential=accesskey/20210101/s3/aws4_request, " + "SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-region-set;x-amz-security-token, Signature=signature"), new Aws.Crt.Http.HttpHeader("b", "b"), }; var signedHeaders = CrtHttpRequestConverter.ExtractSignedHeaders(crtRequest); // Verify that we can extract the signed headers out of the CRT's 'Authorization' header, // since we may use them directly later in the SDK Assert.Equal("host;x-amz-content-sha256;x-amz-date;x-amz-region-set;x-amz-security-token", signedHeaders); }