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); }
public static MAuthOptionsBase GetServerOptionsWithAttempts(MAuthServiceRetryPolicy policy, bool shouldSucceedWithin) => new MAuthTestOptions() { ApplicationUuid = ServerUuid, MAuthServiceUrl = TestUri, PrivateKey = ServerPrivateKey, MAuthServiceRetryPolicy = policy, MAuthServerHandler = new MAuthServerHandler() { SucceedAfterThisManyAttempts = (int)policy + (shouldSucceedWithin ? 1 : 2) } };
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); }