Esempio n. 1
0
        public async Task AuthenticateRequest_AfterNumberOfAttempts_WillThrowExceptionWithRequestFailure(
            MAuthServiceRetryPolicy policy)
        {
            // Arrange
            var testData = await TestData.For("GET");

            var authenticator = new MAuthAuthenticator(TestExtensions.GetServerOptionsWithAttempts(
                                                           policy, shouldSucceedWithin: false));

            var signedRequest = await testData.Request.AddAuthenticationInfo(new PrivateKeyAuthenticationInfo()
            {
                ApplicationUuid = TestExtensions.ClientUuid,
                PrivateKey      = TestExtensions.ClientPrivateKey,
                SignedTime      = testData.SignedTime
            });

            // Act
            var exception = (await Assert.ThrowsAsync <AuthenticationException>(
                                 () => authenticator.AuthenticateRequest(signedRequest)));

            var innerException = exception.InnerException as RetriedRequestException;

            // Assert
            Assert.NotNull(innerException);
            Assert.Equal((int)policy + 1, innerException.Responses.Count);
            Assert.Equal(HttpStatusCode.ServiceUnavailable, innerException.Responses.First().StatusCode);
        }
        public static async Task AuthenticateRequest_WithMWSV2Request_AfterNumberOfAttempts_WillThrowExceptionWithRequestFailure(
            MAuthServiceRetryPolicy policy)
        {
            // Arrange
            var testData      = await "GET".FromResource();
            var version       = MAuthVersion.MWSV2;
            var authenticator = new MAuthAuthenticator(TestExtensions.GetServerOptionsWithAttempts(
                                                           policy, shouldSucceedWithin: false), NullLogger <MAuthAuthenticator> .Instance);
            var mAuthCore = new MAuthCoreV2();

            var signedRequest = await mAuthCore
                                .AddAuthenticationInfo(testData.ToHttpRequestMessage(version), new PrivateKeyAuthenticationInfo()
            {
                ApplicationUuid = testData.ApplicationUuid,
                PrivateKey      = TestExtensions.ClientPrivateKey,
                SignedTime      = testData.SignedTime
            });

            // Act
            var exception = (await Assert.ThrowsAsync <AuthenticationException>(
                                 () => authenticator.AuthenticateRequest(signedRequest)));

            var innerException = exception.InnerException as RetriedRequestException;

            // Assert
            Assert.NotNull(innerException);
            Assert.Equal((int)policy + 1, innerException.Responses.Count);
            Assert.Equal(HttpStatusCode.ServiceUnavailable, innerException.Responses.First().StatusCode);
        }
Esempio n. 3
0
        public async Task AuthenticateRequest_WithNumberOfAttempts_WillAuthenticate(MAuthServiceRetryPolicy policy)
        {
            // Arrange
            var testData = await TestData.For("GET");

            var authenticator = new MAuthAuthenticator(TestExtensions.GetServerOptionsWithAttempts(
                                                           policy, shouldSucceedWithin: true));

            var signedRequest = await testData.Request.AddAuthenticationInfo(new PrivateKeyAuthenticationInfo()
            {
                ApplicationUuid = TestExtensions.ClientUuid,
                PrivateKey      = TestExtensions.ClientPrivateKey,
                SignedTime      = testData.SignedTime
            });

            // Act
            var isAuthenticated = await authenticator.AuthenticateRequest(signedRequest);

            // Assert
            Assert.True(isAuthenticated);
        }
        public static async Task AuthenticateRequest_WithNumberOfAttempts_WillAuthenticate(
            MAuthServiceRetryPolicy policy)
        {
            // Arrange
            var testData = await "GET".FromResourceV2();

            var authenticator = new MAuthAuthenticator(TestExtensions.GetServerOptionsWithAttempts(
                                                           policy, shouldSucceedWithin: true), NullLogger <MAuthAuthenticator> .Instance);
            var mAuthCore = new MAuthCoreV2();

            var signedRequest = await mAuthCore
                                .AddAuthenticationInfo(testData.ToDefaultHttpRequestMessage(), new PrivateKeyAuthenticationInfo()
            {
                ApplicationUuid = testData.ApplicationUuid,
                PrivateKey      = TestExtensions.ClientPrivateKey,
                SignedTime      = testData.SignedTime
            });

            // Act
            var isAuthenticated = await authenticator.AuthenticateRequest(signedRequest);

            // Assert
            Assert.True(isAuthenticated);
        }