public async Task RegistreerKlantCommandInsertsKlantAndThrowsEvent()
        {
            var eventpublisherMock = new Mock <IEventPublisher>(MockBehavior.Strict);

            eventpublisherMock.Setup(m =>
                                     m.Publish(
                                         It.Is <KlantGeregistreerdEvent>(d => d.RoutingKey == NameConstants.KlantGeregistreerdEvent)));

            var datamapperMock = new Mock <IKlantDatamapper>(MockBehavior.Strict);

            datamapperMock
            .Setup(m => m.Insert(It.Is <Klant>(b => b.Voornaam == "Hans" && b.Id == "1")))
            .Returns(Task.CompletedTask).Verifiable();

            var command = new RegistreerKlantCommand
            {
                AccountId      = "1",
                Voornaam       = "Hans",
                Achternaam     = "van Huizen",
                AdresRegel     = "Voorstraat 8",
                Plaats         = "Groningen",
                Postcode       = "1345df",
                Telefoonnummer = "0665234365"
            };

            var listener = new KlantListener(datamapperMock.Object, eventpublisherMock.Object);

            var result = await listener.RegistreerKlant(command);

            Assert.AreEqual("1", result);
        }
        public void KlantGeregistreerdEventAddsToDatabase()
        {
            var artikelEvent = new KlantGeregistreerdEvent
            {
                Id         = "1",
                Voornaam   = "Hans",
                Achternaam = "Van Huizen"
            };

            var mapperMock = new Mock <IKlantDatamapper>(MockBehavior.Strict);

            mapperMock.Setup(m => m.Insert(It.Is <Klant>(a => a.Id == "1"))).Verifiable();
            var magazijnListener = new KlantListener(mapperMock.Object);

            magazijnListener.KlantToegevoegd(artikelEvent);
        }