public SapCreditNoteModel MapToSapCreditNote(CancelCreditNoteRequest cancelCreditNoteRequest)
        {
            var sapCreditNoteModel = new SapCreditNoteModel
            {
                U_DPL_CN_ID     = cancelCreditNoteRequest.CreditNoteId,
                BillingSystemId = cancelCreditNoteRequest.BillingSystemId
            };

            return(sapCreditNoteModel);
        }
        public void CancelCreditNote_ShouldBeHttpStatusCodeOk_WhenRequestIsValid_ShouldBeThrowsAnException_WhenBillingSystemIdIsNotValid()
        {
            var cancelCreditNoteRequest = new CancelCreditNoteRequest {
                BillingSystemId = 0, CreditNoteId = 1
            };

            var loggerMock         = new Mock <ILogger <BillingController> >();
            var billingServiceMock = new Mock <IBillingService>();

            billingServiceMock.Setup(x => x.CancelCreditNote(cancelCreditNoteRequest)).ThrowsAsync(new ArgumentException("Value can not be null", "BillingSystemId"));

            var controller = new BillingController(loggerMock.Object, billingServiceMock.Object);

            // Act
            var ex = Assert.ThrowsAsync <ArgumentException>(() => controller.CancelCreditNote(cancelCreditNoteRequest));

            // Assert
            Assert.Equal("Value can not be null (Parameter 'BillingSystemId')", ex.Result.Message);
        }
        public async Task CancelCreditNote_ShouldBeHttpStatusCodeOk_WhenRequestIsValid()
        {
            var cancelCreditNoteRequest = new CancelCreditNoteRequest {
                BillingSystemId = 2, CreditNoteId = 1
            };

            var loggerMock         = new Mock <ILogger <BillingController> >();
            var billingServiceMock = new Mock <IBillingService>();

            billingServiceMock.Setup(x => x.CancelCreditNote(cancelCreditNoteRequest)).Returns(Task.CompletedTask);

            var controller = new BillingController(loggerMock.Object, billingServiceMock.Object);

            // Act
            var response = await controller.CancelCreditNote(cancelCreditNoteRequest);

            // Assert
            Assert.IsType <OkObjectResult>(response);
            Assert.Equal("Successfully", ((ObjectResult)response).Value);
        }
Exemple #4
0
        public async Task CancelCreditNote(CancelCreditNoteRequest cancelCreditNoteRequest)
        {
            try
            {
                var sapSystem = SapSystemHelper.GetSapSystemByBillingSystem(cancelCreditNoteRequest.BillingSystemId);
                var validator = GetValidator(sapSystem);
                validator.ValidateCancelCreditNote(cancelCreditNoteRequest);

                _queuingService.AddToTaskQueue(
                    new SapTask
                {
                    CancelCreditNoteRequest = cancelCreditNoteRequest,
                    TaskType = SapTaskEnum.CancelCreditNote
                }
                    );
            }
            catch (Exception e)
            {
                _logger.LogError($"Failed at cancel credit note request for invoice: {cancelCreditNoteRequest.CreditNoteId}.", e);
                await _slackService.SendNotification($"Failed at cancel credit note request for invoice: {cancelCreditNoteRequest.CreditNoteId}. Error: {e.Message}");
            }
        }
Exemple #5
0
 public Task CancelCreditNote(CancelCreditNoteRequest cancelCreditNoteRequest)
 {
     return(Task.CompletedTask);
 }