public static async Task MAuthAuthenticatingHandler_WithValidMWSV2Request_WillAuthenticate(string method) { // Arrange var testData = await method.FromResourceV2(); var actual = new AssertSigningHandler(); var version = MAuthVersion.MWSV2; var handler = new MAuthAuthenticatingHandler(new MAuthWebApiOptions() { ApplicationUuid = TestExtensions.ServerUuid, MAuthServiceUrl = TestExtensions.TestUri, PrivateKey = TestExtensions.ServerPrivateKey, MAuthServerHandler = new MAuthServerHandler() }, actual); using (var server = new HttpClient(handler)) { // Act var response = await server.SendAsync(testData.ToHttpRequestMessage(version)); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(testData.MAuthHeaderV2, actual.MAuthHeaderV2); Assert.Equal(testData.SignedTime, long.Parse(actual.MAuthTimeHeaderV2).FromUnixTimeSeconds()); } }
public static async Task MAuthAuthenticatingHandler_WithEnabledExceptions_WillThrowException(string method) { // Arrange var testData = await method.FromResource(); var handler = new MAuthAuthenticatingHandler(new MAuthWebApiOptions() { ApplicationUuid = TestExtensions.ServerUuid, MAuthServiceUrl = TestExtensions.TestUri, PrivateKey = TestExtensions.ServerPrivateKey, MAuthServerHandler = new MAuthServerHandler(), HideExceptionsAndReturnUnauthorized = false }); using (var server = new HttpClient(handler)) { // Act, Assert var ex = await Assert.ThrowsAsync <AuthenticationException>( () => server.SendAsync( new HttpRequestMessage(testData.Method.ToHttpMethod(), testData.Url))); Assert.Equal("The request has invalid MAuth authentication headers.", ex.Message); Assert.NotNull(ex.InnerException); } }
public async Task MAuthAuthenticatingHandler_WithValidRequest_WillAuthenticate(string method) { // Arrange var testData = await TestData.For(method); var actual = new AssertSigningHandler(); var handler = new MAuthAuthenticatingHandler(new MAuthWebApiOptions() { ApplicationUuid = TestExtensions.ServerUuid, MAuthServiceUrl = TestExtensions.TestUri, PrivateKey = TestExtensions.ServerPrivateKey, MAuthServerHandler = new MAuthServerHandler() }, actual); using (var server = new HttpClient(handler)) { // Act var response = await server.SendAsync( await testData.Request.Sign(TestExtensions.ClientOptions(testData.SignedTime))); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(testData.MAuthHeader, actual.MAuthHeader); Assert.Equal(testData.SignedTime, actual.MAuthTimeHeader.FromUnixTimeSeconds()); } }
public async Task MAuthAuthenticatingHandler_WithoutMAuthHeader_WillNotAuthenticate(string method) { // Arrange var testData = await TestData.For(method); var handler = new MAuthAuthenticatingHandler(new MAuthWebApiOptions() { ApplicationUuid = TestExtensions.ServerUuid, MAuthServiceUrl = TestExtensions.TestUri, PrivateKey = TestExtensions.ServerPrivateKey, MAuthServerHandler = new MAuthServerHandler() }); using (var server = new HttpClient(handler)) { // Act var response = await server.SendAsync(testData.Request); // Assert Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode); } }