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); }
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)); }
public long HandleVerWerkBetalingCommand(VerwerkBetalingCommand verwerkBetalingCommand) { var betaling = Mapper.Map <Betaling>(verwerkBetalingCommand.BetalingCM); betaling.BetaalDatum = DateTime.Now; _betalingVerwerkenService.HandleBetalingVerwerken(betaling); return(verwerkBetalingCommand.BetalingCM.Factuurnummer); }
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); }