public async Task CancelAsync_WithOrderRef_ShouldMap_ToCancelRequest_WithOrderRef()
        {
            // Arrange
            var bankIdApiClientMock = new Mock <IBankIdApiClient>(MockBehavior.Strict);

            bankIdApiClientMock.Setup(client => client.CancelAsync(It.IsAny <CancelRequest>()))
            .ReturnsAsync(It.IsAny <CancelResponse>());

            // Act
            await BankIdApiClientExtensions.CancelAsync(bankIdApiClientMock.Object, "or");

            // Assert
            var request = bankIdApiClientMock.GetFirstArgumentOfFirstInvocation <IBankIdApiClient, CancelRequest>();

            Assert.Equal("or", request.OrderRef);
        }
        public async Task SignAsync_WithEndUserIp_AndPin_ShouldMap_ToSignRequest_WithEndUserIp_AndPin()
        {
            // Arrange
            var bankIdApiClientMock = new Mock <IBankIdApiClient>(MockBehavior.Strict);

            bankIdApiClientMock.Setup(client => client.SignAsync(It.IsAny <SignRequest>()))
            .ReturnsAsync(It.IsAny <SignResponse>());

            // Act
            await BankIdApiClientExtensions.SignAsync(bankIdApiClientMock.Object, "1.1.1.1", "userVisibleData", null, "201801012392");

            // Assert
            var request = bankIdApiClientMock.GetFirstArgumentOfFirstInvocation <IBankIdApiClient, SignRequest>();

            Assert.Equal("1.1.1.1", request.EndUserIp);
            Assert.Equal("201801012392", request.PersonalIdentityNumber);
        }
        public async Task AuthAsync_WithEndUserIp_ShouldMap_ToAuthRequest_WithEndUserIp()
        {
            // Arrange
            var bankIdApiClientMock = new Mock <IBankIdApiClient>(MockBehavior.Strict);

            bankIdApiClientMock.Setup(client => client.AuthAsync(It.IsAny <AuthRequest>()))
            .ReturnsAsync(It.IsAny <AuthResponse>());

            // Act
            await BankIdApiClientExtensions.AuthAsync(bankIdApiClientMock.Object, "1.1.1.1");

            // Assert
            var request = bankIdApiClientMock.GetFirstArgumentOfFirstInvocation <IBankIdApiClient, AuthRequest>();

            Assert.Equal("1.1.1.1", request.EndUserIp);
            Assert.Null(request.PersonalIdentityNumber);
        }
        public async Task AuthAsync_WithEndUserIp_AndUserData_ShouldMap_ToAuthRequest_WithEndUserIp_AndUserData_Base64Encoded()
        {
            // Arrange
            var bankIdApiClientMock = new Mock <IBankIdApiClient>(MockBehavior.Strict);

            bankIdApiClientMock.Setup(client => client.AuthAsync(It.IsAny <AuthRequest>()))
            .ReturnsAsync(It.IsAny <AuthResponse>());

            // Act
            await BankIdApiClientExtensions.AuthAsync(bankIdApiClientMock.Object, "1.1.1.1", "userVisibleData", "userVisibleDataFormat");

            // Assert
            var request = bankIdApiClientMock.GetFirstArgumentOfFirstInvocation <IBankIdApiClient, AuthRequest>();

            Assert.Equal("1.1.1.1", request.EndUserIp);
            Assert.Equal("dXNlclZpc2libGVEYXRh", request.UserVisibleData);
            Assert.Equal("userVisibleDataFormat", request.UserVisibleDataFormat);
        }