public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnCompletionDataDevice() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"completionData\": { \"device\": { \"ipAddress\": \"1.1.1.1\" } } }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("1.1.1.1", result.CompletionData.Device.IpAddress); }
public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnCompletionDataSignatureXml() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"completionData\": { \"signature\": \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHNhbXBsZT48dmFsdWU+SGk8L3ZhbHVlPjxjb250ZW50PkJ5ZTwvY29uZW50Pjwvc2FtcGxlPg==\" } }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sample><value>Hi</value><content>Bye</conent></sample>", result.CompletionData.GetSignatureXml()); }
public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnOrderRef() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"orderRef\":\"abc123\" }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("abc123", result.OrderRef); }
public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnCompletionDataSignature_AndOcspResponse() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"completionData\": { \"signature\": \"s\", \"ocspResponse\": \"or\" } }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("s", result.CompletionData.Signature); Assert.Equal("or", result.CompletionData.OcspResponse); }
public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnStatus() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"status\":\"Pending\" }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("Pending", result.Status); Assert.Equal(CollectStatus.Pending, result.GetCollectStatus()); }
public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnHintCode() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"hintCode\":\"OutstandingTransaction\" }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("OutstandingTransaction", result.HintCode); Assert.Equal(CollectHintCode.OutstandingTransaction, result.GetCollectHintCode()); }
public async void AuthAsync_WithAuthRequest__ShouldParseAndReturnOrderRef_AndAutoStartToken() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"orderRef\": \"abc123\", \"autoStartToken\": \"def456\" }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.AuthAsync(new AuthRequest("1.1.1.1")); // Assert Assert.NotNull(result); Assert.Equal("abc123", result.OrderRef); Assert.Equal("def456", result.AutoStartToken); }
public BankIdApiClient_Tests() { _messageHandlerMock = GetHttpClientMessageHandlerMock(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent("{ }", Encoding.Default, "application/json"), }); var httpClient = new HttpClient(_messageHandlerMock.Object) { BaseAddress = new Uri("https://bankid/") }; _bankIdApiClient = new BankIdApiClient(httpClient); }
public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnCompletionDataCertDates_ConvetedFromUnixEpochMillisecondsToDateTime() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"completionData\": { \"cert\": { \"notBefore\": \"671630400000\", \"notAfter\": \"671659200000\" } } }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("671630400000", result.CompletionData.Cert.NotBefore); Assert.Equal(new DateTime(1991, 4, 14, 12, 00, 00), result.CompletionData.Cert.GetNotBeforeDateTime()); Assert.Equal("671659200000", result.CompletionData.Cert.NotAfter); Assert.Equal(new DateTime(1991, 4, 14, 20, 00, 00), result.CompletionData.Cert.GetNotAfterDateTime()); }
public async void CollectAsync_WithCollectRequest__ShouldParseAndReturnCompletionDataUser() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"completionData\": { \"user\": { \"personalNumber\": \"201801012392\", \"name\": \"n\", \"givenName\": \"gn\", \"surname\": \"sn\" } } }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.CollectAsync(new CollectRequest("x")); // Assert Assert.NotNull(result); Assert.Equal("201801012392", result.CompletionData.User.PersonalIdentityNumber); Assert.Equal("n", result.CompletionData.User.Name); Assert.Equal("gn", result.CompletionData.User.GivenName); Assert.Equal("sn", result.CompletionData.User.Surname); }
public async Task SignAsync_WithSignRequest__ShouldParseAndReturnOrderRef_AndTokens() { // Arrange var httpClient = GetHttpClientMockWithOkResponse("{ \"orderRef\": \"abc123\", \"autoStartToken\": \"def456\", \"qrStartSecret\": \"ghi790\", \"qrStartToken\": \"jkl123\" }"); var bankIdClient = new BankIdApiClient(httpClient); // Act var result = await bankIdClient.SignAsync(new SignRequest("1.1.1.1", "userVisibleData")); // Assert Assert.NotNull(result); Assert.Equal("abc123", result.OrderRef); Assert.Equal("def456", result.AutoStartToken); Assert.Equal("ghi790", result.QrStartSecret); Assert.Equal("jkl123", result.QrStartToken); }
public async void ErrorResponse__ShouldThrowException_WithErrorCode_AndDetails() { // Arrange var messageHandlerMock = GetHttpClientMessageHandlerMock(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent("{ \"errorCode\": \"AlreadyInProgress\", \"details\": \"d\" }", Encoding.Default, "application/json"), }); var httpClient = new HttpClient(messageHandlerMock.Object) { BaseAddress = new Uri("https://bankid/") }; var bankIdApiClient = new BankIdApiClient(httpClient); // Act var exception = await Assert.ThrowsAsync <BankIdApiException>(() => bankIdApiClient.AuthAsync(new AuthRequest("1.1.1.1"))); // Assert Assert.Equal(ErrorCode.AlreadyInProgress, exception.ErrorCode); Assert.Equal("d", exception.ErrorDetails); }