예제 #1
0
        public void ReceiveAddArtikelToCatalogusWithCompleteEventMessageShouldAddArtikelsToTheDatabase()
        {
            // Arrange
            ArtikelEntity insertParam = null;

            var mock = new Mock <IArtikelDataMapper>();

            mock.Setup(repo => repo.Insert(It.IsAny <ArtikelEntity>())).Returns(insertParam)
            .Callback <ArtikelEntity>(entity =>
            {
                insertParam = entity;
            });

            ArtikelEntity expected = new ArtikelEntityBuilder().SetDummy().SetDummyCategorie("Cat1").SetDummyCategorie("Cat2").Create();
            Artikel       artikel  = expected.ToArtikel();

            var auditLogListener = new EventListener(mock.Object, null, null);
            var eventMessage     = new EventMessage("", JsonConvert.SerializeObject(artikel));

            // Act
            auditLogListener.ReceiveAddArtikelToCatalogus(eventMessage);

            // Assert
            Assert.IsTrue(expected.IsEqual(insertParam));
        }
        public void ReceiveAddArtikelToCatalogus(EventMessage message)
        {
            Artikel artikel       = JsonConvert.DeserializeObject <Artikel>(message.Message);
            var     artikelEntity = new ArtikelEntity()
            {
                Artikelnummer   = artikel.Artikelnummer,
                Naam            = artikel.Naam,
                Beschrijving    = artikel.Beschrijving,
                Prijs           = artikel.Prijs,
                AfbeeldingUrl   = artikel.AfbeeldingUrl,
                LeverbaarVanaf  = artikel.LeverbaarVanaf,
                LeverbaarTot    = artikel.LeverbaarTot,
                Leveranciercode = artikel.Leveranciercode,
                Leverancier     = artikel.Leverancier,
            };

            foreach (var cat in artikel.Categorieen)
            {
                artikelEntity.ArtikelCategorieen.Add(new ArtikelCategorieEntity()
                {
                    Artikel   = artikelEntity,
                    Categorie = new CategorieEntity()
                    {
                        Categorie = cat
                    }
                });
            }

            _artikelDataMapper.Insert(artikelEntity);
        }