コード例 #1
0
            public async Task CalculatesSignatureForExpectedRequestForSigning()
            {
                var composedString = "{the composed string}";
                HttpRequestForSigning interceptedRequest = null;

                A.CallTo(() => _signingStringComposer.Compose(
                             A <HttpRequestForSigning> ._,
                             _settings.SignatureAlgorithm.Name,
                             _settings.Headers,
                             _timeOfSigning,
                             _settings.Expires,
                             _nonce))
                .Invokes(call => interceptedRequest = call.GetArgument <HttpRequestForSigning>(0))
                .Returns(composedString);

                await _sut.CreateSignature(_httpRequestMessage, _settings, _timeOfSigning);

                interceptedRequest.Should().BeEquivalentTo(new HttpRequestForSigning {
                    Method     = HttpMethod.Post,
                    RequestUri = "/api/resource/id1",
                    Headers    = new HeaderDictionary(new Dictionary <string, StringValues> {
                        { "H1", "v1" }
                    })
                });
            }
コード例 #2
0
            public async Task CalculatesSignatureForExpectedRequest()
            {
                var compositionRequest = new SigningStringCompositionRequest();
                HttpRequestForSigning interceptedRequest         = null;
                SigningSettings       interceptedSigningSettings = null;
                DateTimeOffset?       interceptedTimeOfSigning   = null;
                TimeSpan?interceptedExpires = null;

                A.CallTo(() => _stringCompositionRequestFactory.CreateForSigning(A <HttpRequestForSigning> ._, A <SigningSettings> ._, A <DateTimeOffset?> ._, A <TimeSpan?> ._))
                .Invokes(call => {
                    interceptedRequest         = call.GetArgument <HttpRequestForSigning>(0);
                    interceptedSigningSettings = call.GetArgument <SigningSettings>(1);
                    interceptedTimeOfSigning   = call.GetArgument <DateTimeOffset?>(2);
                    interceptedExpires         = call.GetArgument <TimeSpan?>(3);
                })
                .Returns(compositionRequest);

                var composedString = "{the composed string}";

                A.CallTo(() => _signingStringComposer.Compose(A <SigningStringCompositionRequest> ._))
                .Returns(composedString);

                await _sut.CreateSignature(_httpRequestMessage, _settings, _timeOfSigning, _expires);

                interceptedRequest.Should().BeEquivalentTo(new HttpRequestForSigning {
                    Method     = HttpMethod.Post,
                    RequestUri = "http://dalion.eu/api/resource/id1".ToUri(),
                    Headers    = new HeaderDictionary(new Dictionary <string, StringValues> {
                        { "H1", "v1" }
                    })
                });
                interceptedSigningSettings.Should().Be(_settings);
                interceptedTimeOfSigning.Should().Be(_timeOfSigning);
                interceptedExpires.Should().Be(_expires);
            }