public IActionResult MaakNieuweKlant([FromBody] MaakNieuweKlantCommand command) { if (ModelState.IsValid && command != null) { var klant = new Klant( voornaam: command.Voornaam, tussenvoegsel: command.Tussenvoegsel, achternaam: command.Achternaam, adres: command.Adres, postcode: command.Postcode, woonplaats: command.Woonplaats, telefoonummer: command.Telefoonnummer, email: command.Email ); _repository.Insert(klant); var klantAangemaaktEvent = new KlantIsAangemaaktEvent( klantGuid: klant.Guid, voornaam: command.Voornaam, tussenvoegsel: command.Tussenvoegsel, achternaam: command.Achternaam, adres: command.Adres, postcode: command.Postcode, woonplaats: command.Woonplaats, telefoonummer: command.Telefoonnummer, email: command.Email ); _publisher.Publish(klantAangemaaktEvent); return(Ok()); } return(BadRequest()); }
public void KlantController_MaakNieuweKlant_Success() { // Arrange var repoMock = new Mock <IRepository>(MockBehavior.Strict); repoMock.Setup(r => r.Insert(It.IsAny <Klant>())); var pubMock = new Mock <IEventPublisher>(MockBehavior.Strict); pubMock.Setup(p => p.Publish(It.IsAny <KlantIsAangemaaktEvent>())); var target = new KlantController(repoMock.Object, pubMock.Object); var command = new MaakNieuweKlantCommand(); // Act IActionResult result = target.MaakNieuweKlant(command); // Assert Assert.IsInstanceOfType(result, typeof(OkResult)); repoMock.Verify(r => r.Insert(It.IsAny <Klant>()), Times.Once()); pubMock.Verify(p => p.Publish(It.IsAny <KlantIsAangemaaktEvent>()), Times.Once()); }