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());
        }
Exemple #2
0
        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());
        }