Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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]));
        }
Пример #8
0
        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]));
        }