public void HandleVerWerkBetalingCommand_ShouldInsertNewBetalingAndPublishEvent()
        {
            // Arrange
            var queueName = "TestQueue";
            var receiver  = _nijnContext.CreateMessageReceiver(queueName, new List <string> {
                NameConstants.BetaalServiceBetalingGeaccrediteerdEvent
            });

            receiver.DeclareQueue();

            var betalingCM = new BetalingCM(1, 200);
            var command    = new VerwerkBetalingCommand(betalingCM, NameConstants.BetaalServiceBetalingVerwerkenCommandQueue);

            // Act
            _target.HandleVerWerkBetalingCommand(command);

            // Assert
            var queue            = _nijnContext.EventBus.Queues[queueName];
            var bestellingResult = JsonConvert.DeserializeObject <BestellingGeaccrediteerdEvent>(queue[0].Message);

            Assert.AreEqual(1, queue.MessageQueueLength);
            Assert.AreEqual(1, bestellingResult.Factuurnummer);

            var dbResult = _dbContext.Betalingen.SingleOrDefault(b => b.Factuurnummer == 1);

            Assert.AreEqual(betalingCM.Bedrag, dbResult.Bedrag);
            Assert.AreEqual(betalingCM.Factuurnummer, dbResult.Factuurnummer);
            Assert.AreEqual(1, dbResult.Klantnummer);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> BetalingVerwerken([FromBody] BetalingCM betaling)
        {
            var betalingVerwerkenCommand = new VerwerkBetalingCommand(betaling, NameConstants.BetaalServiceBetalingVerwerkenCommandQueue);

            try
            {
                await _commandPublisher.Publish <long>(betalingVerwerkenCommand);
            }
            catch (InvalidFactuurnummerException)
            {
                _logger.LogError("InvalidFactuurnummerException occured, the factuurnummer is: {}", betaling.Factuurnummer);
                return(BadRequest($"Factuurnummer {betaling.Factuurnummer} kon niet worden gevonden"));
            }
            catch (TimeoutException)
            {
                _logger.LogError("BetalingVerwerkenCommand resulted in a TimeoutException.");
                return(StatusCode((int)HttpStatusCode.RequestTimeout, "Aanvraag kon niet worden verwerkt"));
            }
            catch (Exception ex)
            {
                _logger.LogError("BetalingVerwerkenCommand resulted in an internal server error.");
                _logger.LogDebug(
                    "Exception occured during execution of UpdateBestelStatusCommand {}, it threw exception: {}. Inner exception: {}",
                    betaling, ex.Message, ex.InnerException?.Message
                    );
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }

            return(StatusCode((int)HttpStatusCode.OK));
        }
Ejemplo n.º 3
0
        public long HandleVerWerkBetalingCommand(VerwerkBetalingCommand verwerkBetalingCommand)
        {
            var betaling = Mapper.Map <Betaling>(verwerkBetalingCommand.BetalingCM);

            betaling.BetaalDatum = DateTime.Now;
            _betalingVerwerkenService.HandleBetalingVerwerken(betaling);

            return(verwerkBetalingCommand.BetalingCM.Factuurnummer);
        }
Ejemplo n.º 4
0
        public void HandleVerwerkBetalingCommand_ShouldReturnFactuurnummer()
        {
            // Arrange
            var commandModel = new BetalingCM(1, 400);
            var command      = new VerwerkBetalingCommand(commandModel, "");

            _betalingVerwerkenServiceMock.Setup(b => b.HandleBetalingVerwerken(It.IsAny <Betaling>()));

            // Act
            var result = _target.HandleVerWerkBetalingCommand(command);

            // Assert
            _betalingVerwerkenServiceMock.VerifyAll();
            Assert.AreEqual(1, result);
        }
        public void HandleVerWerkBetalingCommand_ShouldInsertNewBetaling()
        {
            // Arrange
            var betalingCM = new BetalingCM(1, 100);
            var command    = new VerwerkBetalingCommand(betalingCM, NameConstants.BetaalServiceBetalingVerwerkenCommandQueue);

            // Act
            _target.HandleVerWerkBetalingCommand(command);

            // Assert
            var dbResult = _dbContext.Betalingen.SingleOrDefault(b => b.Factuurnummer == 1);

            Assert.AreEqual(betalingCM.Bedrag, dbResult.Bedrag);
            Assert.AreEqual(betalingCM.Factuurnummer, dbResult.Factuurnummer);
            Assert.AreEqual(1, dbResult.Klantnummer);
        }