コード例 #1
0
        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());
            }
        }
コード例 #2
0
        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());
            }
        }
コード例 #3
0
        public async Task SendAsync_WithValidRequest_WillSignProperly(string method)
        {
            // Arrange
            var testData = await TestData.For(method);

            var actual         = new AssertSigningHandler();
            var signingHandler = new MAuthSigningHandler(TestExtensions.ClientOptions(testData.SignedTime), actual);

            // Act
            using (var client = new HttpClient(signingHandler))
            {
                await client.SendAsync(testData.Request);
            }

            // Assert
            Assert.Equal(testData.MAuthHeader, actual.MAuthHeader);
            Assert.Equal(testData.SignedTime, actual.MAuthTimeHeader.FromUnixTimeSeconds());
        }
コード例 #4
0
        public static async Task SendAsync_WithDefault_WillSignProperly_BothMWSAndMWSV2(string method)
        {
            // Arrange
            var testData = await method.FromResource();

            var actual         = new AssertSigningHandler();
            var signingHandler = new MAuthSigningHandler(TestExtensions.ClientOptions(testData.SignedTime), actual);

            // Act
            using (var client = new HttpClient(signingHandler))
            {
                await client.SendAsync(testData.ToDefaultHttpRequestMessage());
            }

            // Assert
            Assert.Equal(testData.MAuthHeader, actual.MAuthHeader);
            Assert.Equal(testData.SignedTime, long.Parse(actual.MAuthTimeHeader).FromUnixTimeSeconds());

            Assert.Equal(testData.MAuthHeaderV2, actual.MAuthHeaderV2);
            Assert.Equal(testData.SignedTime, long.Parse(actual.MAuthTimeHeader).FromUnixTimeSeconds());
        }
コード例 #5
0
        public static async Task SendAsync_WithDisableV1_WillSignProperlyWithMWSV2(string method)
        {
            // Arrange
            var testData = await method.FromResourceV2();

            var actual        = new AssertSigningHandler();
            var version       = MAuthVersion.MWSV2;
            var clientOptions = TestExtensions.ClientOptions(testData.SignedTime);

            clientOptions.DisableV1 = true;
            var signingHandler = new MAuthSigningHandler(clientOptions, actual);


            // Act
            using (var client = new HttpClient(signingHandler))
            {
                await client.SendAsync(testData.ToHttpRequestMessage(version));
            }

            // Assert
            Assert.Equal(testData.MAuthHeaderV2, actual.MAuthHeaderV2);
            Assert.Equal(testData.SignedTime, long.Parse(actual.MAuthTimeHeaderV2).FromUnixTimeSeconds());
        }