Exemple #1
0
        public async Task Then_the_payment_is_posted_successfully()
        {
            //Arrange
            _httpClient.SetUpPostAsAsync(System.Net.HttpStatusCode.Accepted);
            var payment = _fixture.Create <PaymentDto>();

            //Act
            await _sut.SendPaymentRequests(new List <PaymentDto> {
                payment
            });
        }
        public async Task Then_the_nonsensitive_payment_data_is_logged()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <BusinessCentralFinancePaymentsService> >();

            _sut = new BusinessCentralFinancePaymentsService(_httpClient, 3, "XXX", false, loggerMock.Object);
            _httpClient.SetUpPostAsAsync(HttpStatusCode.Accepted);
            var payment1 = _fixture.Create <PaymentDto>();
            var payment2 = _fixture.Create <PaymentDto>();
            var req1     = _sut.MapToBusinessCentralPaymentRequest(payment1);
            var req2     = _sut.MapToBusinessCentralPaymentRequest(payment2);

            //Act
            await _sut.SendPaymentRequests(new List <PaymentDto> {
                payment1, payment2
            });

            //Assert
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req1.ActivityCode);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req1.AccountCode);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req1.CostCentreCode);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req1.RequestorUniquePaymentIdentifier);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req1.DueDate);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req2.ActivityCode);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req2.AccountCode);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req2.CostCentreCode);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req2.RequestorUniquePaymentIdentifier);
            loggerMock.VerifyLogContains(LogLevel.Information, Times.Once(), req2.DueDate);
        }