Пример #1
0
        public void Adding_BillItem_To_BIll()
        {
            var date      = new DateTime(2017, 6, 19);
            var billItems = ListOfBillItems.Create();
            var projectId = Guid.NewGuid().ToString();

            var storeHouseItemAId      = Guid.NewGuid().ToString();
            var storehuseItemAQuantity = 15;
            var billItemA = BillItem.Create(5, 2.5M, storeHouseItemAId, storehuseItemAQuantity);

            var storeHouseItemBId      = Guid.NewGuid().ToString();
            var storehuseItemBQuantity = 15;
            var billItemB = BillItem.Create(4, 2.5M, storeHouseItemBId, storehuseItemBQuantity);

            var bill = Bill.Create(date, billItems, projectId);

            Assert.True(bill.GetBillItems().Count() == 0);

            bill.AddBillItem(billItemA);
            Assert.True(bill.GetBillItems().Count() == 1);

            bill.AddBillItem(billItemB);
            Assert.True(bill.GetBillItems().Count() == 2);

            bill.AddBillItem(billItemA);
            Assert.True(bill.GetBillItems().Count() == 2);
        }
Пример #2
0
        public void Revise_Bill()
        {
            var date                  = new DateTime(2017, 6, 19);
            var revisionDate          = new DateTime(2017, 6, 22);
            var billItems             = ListOfBillItems.Create();
            var projectId             = Guid.NewGuid().ToString();
            var storeHouseItemId      = Guid.NewGuid().ToString();
            var storehuseItemQuantity = 6;
            var billItem              = BillItem.Create(5, 2.5M, storeHouseItemId, storehuseItemQuantity);
            var revisedBillItem       = BillItem.Create(4, 2.5M, storeHouseItemId, storehuseItemQuantity);
            var items                 = new List <BillItem> {
                billItem
            };
            var revisedItems = new List <BillItem> {
                revisedBillItem
            };

            var bill = Bill.Create(date, billItems, projectId);

            bill.Revise(revisionDate, ListOfBillItems.Create(revisedItems));

            Assert.NotNull(bill);
            Assert.NotNull(bill.BillItems);
            Assert.True(bill.GetBillItems().Count() == 1);
            Assert.True(bill.GetBillItems().First().Quantity == revisedBillItem.Quantity);
            Assert.True(bill.RevisionDate.Equals(revisionDate));

            var revisonDatePriorTheDate = date.AddDays(-5);

            Assert.Throws <ArgumentOutOfRangeException>(() => bill.Revise(revisonDatePriorTheDate, ListOfBillItems.Create(revisedItems)));

            var revisonDatePriorTheLastRevisionDate = bill.RevisionDate.AddDays(-1);

            Assert.Throws <ArgumentOutOfRangeException>(() => bill.Revise(revisonDatePriorTheLastRevisionDate, ListOfBillItems.Create(revisedItems)));

            bill.AttachInvoice(Guid.NewGuid().ToString());
            Assert.Throws <InvalidOperationException>(() => bill.Revise(revisionDate, ListOfBillItems.Create(revisedItems)));
        }