public void When_AddDuplicateEntities_Expect_DuplicateNomenclatureEntityException() { var nomenclature = new Nomenclature <Item>(); var item = NomenclatureEntityGenerator <Item> .GenerateOne(); nomenclature.Add(item); Assert.Catch(typeof(DuplicateNomenclatureEntityException), () => nomenclature.Add(item)); }
public void When_IDeleteItem_Expect_ToBeOutOfScope() { var nomenclature = new Nomenclature <Item>(); var items = NomenclatureEntityGenerator <Item> .GenerateMany(5).Select(x => x).ToList(); nomenclature.AddMany(items); nomenclature.DeleteItem(items.Last().Code); Assert.AreEqual(4, nomenclature.Count); }
public void When_AddCoupleOfSuppliers_Expect_ToGetThemBack() { var suppliers = new Nomenclature <Supplier>(); var suppliersList = NomenclatureEntityGenerator <Supplier> .GenerateMany(4).Select(x => x).ToList(); suppliers.AddMany(suppliersList); var numUnitsInNomenclature = suppliers.GetEntities((0, 4)).Count; Assert.AreEqual(4, numUnitsInNomenclature); }
public void When_AddNewSupplier_Expect_ToHaveItInTheNomenclature() { var suppliers = new Nomenclature <Supplier>(); var supplier = NomenclatureEntityGenerator <Supplier> .GenerateOne(); suppliers.Add(supplier); string supplierCode = supplier.Code; Assert.AreEqual(1, suppliers.Count); Assert.AreEqual(supplier, suppliers.GetByCode(supplierCode)); }
public void When_AddNewItem_Expect_ToHaveItInTheNomenclature() { // Arrange var items = new Nomenclature <Item>(); var item = NomenclatureEntityGenerator <Item> .GenerateOne(); // Act items.Add(item); //Assert var itemCode = item.Code; Assert.AreEqual(1, items.Count); Assert.AreEqual(item, items.GetByCode(itemCode)); }
public void When_AddCoupleOfItems_Expect_ToGetThemBackOrdered() { var nom = new Nomenclature <Item>(); var items = NomenclatureEntityGenerator <Item> .GenerateMany(3).Select(x => x).ToList(); nom.AddMany(items); byte numberOfItemsGenerated = 3; ICollection <Item> nomenclatureEntities = nom.GetEntities((0, numberOfItemsGenerated)); Assert.AreEqual(nomenclatureEntities.Count, numberOfItemsGenerated); for (int i = 1; i < numberOfItemsGenerated; i++) { Assert.Less(nomenclatureEntities.ElementAt(i - 1).Priority, nomenclatureEntities.ElementAt(i).Priority); } }
public void When_Sale_Expect_DecreasedQttiesInStore() { IUser user = NomenclatureEntityGenerator <User> .GenerateOne();; IStore store = new Store("Store02"); string[] itemCodes = new string[2] { "item501.5", "item404.4" }; store.AddToWarehouse(itemCodes[0], 100); store.AddToWarehouse(itemCodes[1], 100); var itemsForSale = new List <OperationalItem>() { new OperationalItem() { Code = itemCodes[0], Qtty = 2, Measure = Measure.Qtty, Price = 0.75m, Currency = "BGN" }, new OperationalItem() { Code = itemCodes[1], Qtty = 4, Measure = Measure.Qtty, Price = 1.45m, Currency = "BGN" } }; IOperationDescriptor opDescriptor = new SaleOperationDescriptor(store, user, itemsForSale); var sale = new Sale(opDescriptor); sale.UpdateStore(); Assert.AreEqual(98, store.CheckAvailability(itemCodes[0])); Assert.AreEqual(96, store.CheckAvailability(itemCodes[1])); }
public void When_DeliverItems_Expect_ToHaveThemInStock() { IUser user = NomenclatureEntityGenerator <User> .GenerateOne();; IStore store = new Store("Store02"); ISupplier supplier = new Supplier("Supplier02"); string[] itemCodes = new string[2] { "item501.5", "item404.4" }; var deliveredItems = new List <OperationalItem>() { new OperationalItem() { Code = itemCodes[0], Qtty = 120, Measure = Measure.Qtty, // To do: measurement based on strategy Price = 0.75m, Currency = "BGN" }, new OperationalItem() { Code = itemCodes[1], Qtty = 50, Measure = Measure.Qtty, Price = 1.45m, Currency = "BGN" } }; var opDescriptor = new DeliveryOperationDescriptor(supplier, store, user, deliveredItems); Operation delivery = new Delivery(opDescriptor); delivery.UpdateStore(); Assert.AreEqual(120, store.CheckAvailability(itemCodes[0])); Assert.AreEqual(50, store.CheckAvailability(itemCodes[1])); }