public static async Task GetSignature_WithRequest_WillReturnTheCorrectSignature(string method) { // Arrange var testData = await method.FromResource(); var mAuthCore = new MAuthCore(); var expectedSignature = ($"{testData.Method}\n" + $"{testData.Url.AbsolutePath}\n" + $"{testData.Base64Content.ToStringContent()}\n" + $"{testData.ApplicationUuidString}\n" + $"{testData.SignedTimeUnixSeconds}") .AsSHA512Hash(); var authInfo = new PrivateKeyAuthenticationInfo() { ApplicationUuid = testData.ApplicationUuid, SignedTime = testData.SignedTime }; // Act var result = await mAuthCore.GetSignature(testData.ToHttpRequestMessage(), authInfo); // Assert Assert.Equal(expectedSignature, result); }
public static async Task AddAuthenticationInfo_WithRequestAndAuthInfo_WillAddCorrectInformation(string method) { // Arrange var testData = await method.FromResource(); var expectedMAuthHeader = testData.MAuthHeader; var mAuthCore = new MAuthCore(); var authInfo = new PrivateKeyAuthenticationInfo() { ApplicationUuid = testData.ApplicationUuid, SignedTime = testData.SignedTime, PrivateKey = TestExtensions.ClientPrivateKey }; // Act var actual = await mAuthCore.AddAuthenticationInfo(testData.ToHttpRequestMessage(), authInfo); // Assert Assert.Equal(expectedMAuthHeader, actual.Headers.GetFirstValueOrDefault <string>(Constants.MAuthHeaderKey)); Assert.Equal( authInfo.SignedTime.ToUnixTimeSeconds(), actual.Headers.GetFirstValueOrDefault <long>(Constants.MAuthTimeHeaderKey) ); }
public static async Task GetSignature_WithRequest_WillReturnTheCorrectSignature(string method) { // Arrange var testData = await method.FromResourceV2(); var version = MAuthVersion.MWSV2; var mAuthCore = new MAuthCoreV2(); var queryParams = !string.IsNullOrEmpty(testData.Url.Query) ? testData.Url.Query.Replace("?", "").BuildEncodedQueryParams().ToBytes() :new byte[] { }; var content = !string.IsNullOrEmpty(testData.Base64Content) ? Convert.FromBase64String(testData.Base64Content) : new byte[] { }; var expectedSignature = new byte[][] { testData.Method.ToBytes(), Constants.NewLine, testData.Url.AbsolutePath.ToBytes(), Constants.NewLine, content.AsSHA512Hash(), Constants.NewLine, testData.ApplicationUuidString.ToBytes(), Constants.NewLine, testData.SignedTimeUnixSeconds.ToString().ToBytes(), Constants.NewLine, queryParams }.Concat(); var authInfo = new PrivateKeyAuthenticationInfo() { ApplicationUuid = testData.ApplicationUuid, SignedTime = testData.SignedTime }; // Act var result = await mAuthCore.GetSignature(testData.ToHttpRequestMessage(version), authInfo); // Assert Assert.Equal(expectedSignature, result); }
public static async Task CalculatePayload_WithRequestAndAuthInfo_WillReturnCorrectPayload(string method) { // Arrange var testData = await method.FromResource(); var authInfo = new PrivateKeyAuthenticationInfo() { ApplicationUuid = testData.ApplicationUuid, SignedTime = testData.SignedTime, PrivateKey = TestExtensions.ClientPrivateKey }; // Act var result = await testData.ToHttpRequestMessage().CalculatePayload(authInfo); // Assert Assert.Equal(testData.Payload, result); }
public async Task GetSignature_WithRequest_WillReturnTheCorrectSignature(string method) { // Arrange var testData = await TestData.For(method); var expectedSignature = ($"{method}\n/\n{testData.Content}\n{TestExtensions.ClientUuid.ToHyphenString()}\n" + $"{testData.SignedTime.ToUnixTimeSeconds()}") .AsSHA512Hash(); var authInfo = new PrivateKeyAuthenticationInfo() { ApplicationUuid = TestExtensions.ClientUuid, SignedTime = testData.SignedTime }; // Act var result = await testData.Request.GetSignature(authInfo); // Assert Assert.Equal(expectedSignature, result); }
public async Task AddAuthenticationInfo_WithRequestAndAuthInfo_WillAddCorrectInformation(string method) { // Arrange var testData = await TestData.For(method); var expectedMAuthHeader = $"MWS {TestExtensions.ClientUuid.ToHyphenString()}:{testData.Payload}"; var authInfo = new PrivateKeyAuthenticationInfo() { ApplicationUuid = TestExtensions.ClientUuid, SignedTime = testData.SignedTime, PrivateKey = TestExtensions.ClientPrivateKey }; // Act var actual = await testData.Request.AddAuthenticationInfo(authInfo); // Assert Assert.Equal(expectedMAuthHeader, actual.Headers.GetFirstValueOrDefault <string>(Constants.MAuthHeaderKey)); Assert.Equal( authInfo.SignedTime.ToUnixTimeSeconds(), actual.Headers.GetFirstValueOrDefault <long>(Constants.MAuthTimeHeaderKey) ); }