public static async Task AddAuthenticationInfo_WithRequestAndAuthInfo_WillAddCorrectInformation(string method) { // Arrange var testData = await method.FromResourceV2(); var expectedMAuthHeader = testData.MAuthHeaderV2; var version = MAuthVersion.MWSV2; var mAuthCore = new MAuthCoreV2(); var authInfo = new PrivateKeyAuthenticationInfo() { ApplicationUuid = testData.ApplicationUuid, SignedTime = testData.SignedTime, PrivateKey = TestExtensions.ClientPrivateKey }; // Act var actual = await mAuthCore.AddAuthenticationInfo(testData.ToHttpRequestMessage(version), authInfo); // Assert Assert.Equal(expectedMAuthHeader, actual.Headers.GetFirstValueOrDefault <string>(Constants.MAuthHeaderKeyV2)); Assert.Equal( authInfo.SignedTime.ToUnixTimeSeconds(), actual.Headers.GetFirstValueOrDefault <long>(Constants.MAuthTimeHeaderKeyV2) ); }
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 async Task AuthenticateRequest_WithValidMWSV2Request_WillAuthenticate(string method) { // Arrange var testData = await method.FromResourceV2(); var version = MAuthVersion.MWSV2; var authenticator = new MAuthAuthenticator(TestExtensions.ServerOptions, 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 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); }