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 HandleVoorraadChanged_ShouldSetVoorraadTo_8_WhenNieuweVoorraadIsGreatherThen_8() { // Arrange ArtikelEntity artikel = new ArtikelEntityBuilder() .SetDummy() .SetVoorraad(10) .SetDummyCategorie("Cat1") .SetDummyCategorie("Cat2") .Create(); var mock = new Mock <IArtikelDataMapper>(); mock.Setup(repo => repo.GetById(1)).Returns(artikel); ArtikelEntity result = null; mock.Setup(repo => repo.Update(It.IsAny <ArtikelEntity>())) .Callback <ArtikelEntity>(entity => { result = entity; }); var voorraad = new Voorraad { Artikelnummer = 1, Aantal = 10, NieuweVoorraad = 9 }; var auditLogListener = new EventListener(mock.Object, null, null); var eventMessage = new EventMessage("", JsonConvert.SerializeObject(voorraad)); // Act auditLogListener.HandleVoorraadChanged(eventMessage); // Assert Assert.AreEqual(Constants.MaxVoorraad, result.Voorrraad); }
public ArtikelEntity Insert(ArtikelEntity entity) { InsertCategoryIfNonExistent(entity); _context.ArtikelEntities.Add(entity); _context.SaveChanges(); return(entity); }
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); }
public void InsertArtikelInDatabaseWithMultipleCategories() { // Arrange ArtikelEntity artikel1 = new ArtikelEntityBuilder().SetDummy().SetDummyCategorie("Cat1").SetDummyCategorie("Cat2").Create(); ArtikelEntity artikel2 = new ArtikelEntityBuilder().SetDummy().SetDummyCategorie("Cat2").SetDummyCategorie("Cat3").SetArtikelnummer(2).Create(); ArtikelEntity artikel3 = new ArtikelEntityBuilder().SetDummy().SetDummyCategorie("Cat2").SetDummyCategorie("Cat3").SetArtikelnummer(3).Create(); // Act artikel1 = _target.Insert(artikel1); artikel2 = _target.Insert(artikel2); artikel3 = _target.Insert(artikel3); // Changing a category should cause the artikel3 assert to fail artikel3.ArtikelCategorieen.ElementAt(0).Categorie.Categorie = "Cat4"; ArtikelEntity result1 = _target.GetById(1); ArtikelEntity result2 = _target.GetById(2); ArtikelEntity result3 = _target.GetById(3); // Assert Assert.IsNotNull(result1); Assert.IsNotNull(result2); Assert.IsNotNull(result3); Assert.AreEqual(3, _context.CategorieEntities.Count()); Assert.IsTrue(artikel1.IsEqual(result1)); Assert.IsTrue(artikel2.IsEqual(result2)); Assert.IsTrue(artikel3.IsEqual(result3)); }
public void Delete(ArtikelEntity entity) { var removedRelations = _context.ArtikelCategorieEntities.Where(x => x.ArtikelId == entity.Artikelnummer); _context.ArtikelCategorieEntities.RemoveRange(removedRelations); _context.ArtikelEntities.Remove(entity); _context.SaveChanges(); }
public void Update(ArtikelEntity entity) { InsertCategoryIfNonExistent(entity); var removedRelations = _context.ArtikelCategorieEntities.Where(x => x.ArtikelId == entity.Artikelnummer && entity.ArtikelCategorieen.FirstOrDefault(y => y.Categorie.Categorie == x.Categorie.Categorie) == null); _context.ArtikelEntities.Update(entity); _context.ArtikelCategorieEntities.RemoveRange(removedRelations); _context.SaveChanges(); }
public void InsertArtikelInDatabase() { // Arrange ArtikelEntity artikel = new ArtikelEntityBuilder().SetDummy().Create(); // Act _target.Insert(artikel); ArtikelEntity result = _target.GetById(1); // Assert Assert.IsNotNull(result); Assert.IsTrue(artikel.IsEqual(result)); }
private void InsertCategoryIfNonExistent(ArtikelEntity entity) { foreach (var artikelcategorie in entity.ArtikelCategorieen) { var category = _context.CategorieEntities.FirstOrDefault(x => x.Categorie == artikelcategorie.Categorie.Categorie); if (category == null) { _context.CategorieEntities.Add(artikelcategorie.Categorie); } else { artikelcategorie.Categorie = category; } } }
public void UpdateArtikelInDatabaseWithMultipleCategories() { // Arrange ArtikelEntity artikel1 = new ArtikelEntityBuilder().SetDummy().SetDummyCategorie("Cat1").SetDummyCategorie("Cat2").Create(); ArtikelEntity artikel2 = new ArtikelEntityBuilder().SetDummy().SetDummyCategorie("Cat2").SetDummyCategorie("Cat3").SetArtikelnummer(2).Create(); ArtikelEntity artikel3 = new ArtikelEntityBuilder().SetDummy().SetDummyCategorie("Cat2").SetDummyCategorie("Cat3").SetArtikelnummer(3).Create(); _target.Insert(artikel1); artikel2 = _target.Insert(artikel2); _target.Insert(artikel3); // Act artikel2.ArtikelCategorieen.Remove(artikel2.ArtikelCategorieen.First()); _target.Update(artikel2); var cat = artikel3.ArtikelCategorieen.ElementAt(0); artikel3.ArtikelCategorieen.Remove(cat); var newCat = new ArtikelCategorieEntity { Categorie = new CategorieEntity { Categorie = "Cat4" } }; artikel3.ArtikelCategorieen.Add(newCat); _target.Update(artikel3); ArtikelEntity result1 = _target.GetById(1); ArtikelEntity result2 = _target.GetById(2); ArtikelEntity result3 = _target.GetById(3); // Assert Assert.IsNotNull(result1); Assert.IsNotNull(result2); Assert.IsNotNull(result3); Assert.AreEqual(4, _context.CategorieEntities.Count()); Assert.AreEqual(2, result1.ArtikelCategorieen.Count()); Assert.AreEqual(1, result2.ArtikelCategorieen.Count()); Assert.AreEqual(2, result3.ArtikelCategorieen.Count()); Assert.IsTrue(artikel1.IsEqual(result1)); Assert.IsTrue(artikel2.IsEqual(result2)); Assert.IsTrue(artikel3.IsEqual(result3)); }
public void GetArtikelFromDatabaseById() { ArtikelEntity artikel = new ArtikelEntityBuilder().SetDummy().SetArtikelnummer(12).Create(); _context.ArtikelEntities.Add(artikel); _context.SaveChanges(); // Act ArtikelEntity result1 = _target.GetById(12); ArtikelEntity result2 = _target.GetById(23); // Assert Assert.IsNotNull(result1); Assert.IsTrue(result1.IsEqual(artikel)); Assert.IsNull(result2); }
public ArtikelEntity Create() { var artikelEntity = new ArtikelEntity() { Artikelnummer = Artikelnummer, Naam = Naam, Beschrijving = Beschrijving, Prijs = Prijs, AfbeeldingUrl = AfbeeldingUrl, LeverbaarVanaf = LeverbaarVanaf, LeverbaarTot = LeverbaarTot, Leveranciercode = Leveranciercode, Leverancier = Leverancier, Voorrraad = Voorraad, ArtikelCategorieen = ArtikelCategorieen }; foreach (var ac in artikelEntity.ArtikelCategorieen) { ac.Artikel = artikelEntity; } return(artikelEntity); }
public static bool IsEqual(this ArtikelEntity entity, ArtikelEntity comparable) { if (entity.Artikelnummer != comparable.Artikelnummer) { return(false); } if (entity.Naam != comparable.Naam) { return(false); } if (entity.Beschrijving != comparable.Beschrijving) { return(false); } if (entity.Prijs != comparable.Prijs) { return(false); } if (entity.AfbeeldingUrl != comparable.AfbeeldingUrl) { return(false); } if (entity.LeverbaarVanaf != comparable.LeverbaarVanaf) { return(false); } if (entity.LeverbaarTot != comparable.LeverbaarTot) { return(false); } if (entity.Leveranciercode != comparable.Leveranciercode) { return(false); } if (entity.Leverancier != comparable.Leverancier) { return(false); } if (entity.Voorrraad != comparable.Voorrraad) { return(false); } if (entity.ArtikelCategorieen.Count != comparable.ArtikelCategorieen.Count) { return(false); } var entityCatList = entity.ArtikelCategorieen.OrderBy(x => x.Categorie.Categorie); var comparableCatList = comparable.ArtikelCategorieen.OrderBy(x => x.Categorie.Categorie); for (int i = 0; i < entityCatList.Count(); ++i) { if (entityCatList.ElementAt(i)?.Categorie.Categorie != comparableCatList.ElementAt(i)?.Categorie.Categorie) { return(false); } } return(true); }