Exemplo n.º 1
0
        public void RemoveUnitsThrowsExceptionNegativeInput()
        {
            //arrange
            var sut = new GoodItem();

            //act
            //assert
            System.Exception ex = Assert.Throws <WeLoveTaxesDomainException>(() => sut.RemoveUnits(-5));
        }
Exemplo n.º 2
0
        public void RemoveUnitsThrowsExceptionNegativeResult()
        {
            //arrange
            var sut = new GoodItem(24, 1, true, GoodItemTypeEnum.Other, null, new GoodItemDetails());

            //act
            //assert
            System.Exception ex = Assert.Throws <WeLoveTaxesDomainException>(() => sut.RemoveUnits(-2));
        }
Exemplo n.º 3
0
        public void CtorSetsNullDiscountRateToNull()
        {
            //arrange
            //act
            var sut = new GoodItem(15M, 2, true, GoodItemTypeEnum.Book, null, new GoodItemDetails());

            //assert
            Assert.Equal(0, sut.GetDiscountRate());
        }
Exemplo n.º 4
0
        public void GetPriceReturnsUnitMultipliedByUnitPrice(decimal unitPrice, int units)
        {
            //arrange
            //act
            var sut = new GoodItem(unitPrice, units, true, GoodItemTypeEnum.Book, null, new GoodItemDetails());

            //assert
            Assert.Equal(sut.GetUnitPrice() * sut.GetUnits(), sut.GetPrice());
        }
Exemplo n.º 5
0
        public void RoundUpPriceToUpperFiveCents(decimal amount, decimal expectedAmount)
        {
            //arrange
            //act
            var actual = GoodItem.RoundUpPrice(amount);

            //assert
            Assert.Equal(expectedAmount, actual);
        }
Exemplo n.º 6
0
        public void SetUnitPriceThrowsExceptionNegativeInput(decimal newPrice)
        {
            //arrange
            var sut = new GoodItem(24, 2, true, GoodItemTypeEnum.Other, null, new GoodItemDetails());

            //act
            //assert
            System.Exception ex = Assert.Throws <WeLoveTaxesDomainException>(() => sut.SetUnitPrice(newPrice));
        }
Exemplo n.º 7
0
        public void RemoveUnitsWorksFine()
        {
            //arrange
            var sut = new GoodItem(24, 2, true, GoodItemTypeEnum.Other, null, new GoodItemDetails());

            //act
            sut.RemoveUnits(1);
            //assert
            Assert.Equal(1, sut.GetUnits());
        }
Exemplo n.º 8
0
        public void AddUnitsWorksFine()
        {
            //arrange
            var sut = new GoodItem(24, 1, true, GoodItemTypeEnum.Other, null, new GoodItemDetails());

            //act
            sut.AddUnits(7);
            //assert
            Assert.Equal(8, sut.GetUnits());
        }
Exemplo n.º 9
0
 public OrderTests()
 {
     _good1            = new GoodItem(15.8M, 1, true, GoodItemTypeEnum.Book, null, new GoodItemDetails(), Guid.NewGuid());
     _good2            = new GoodItem(1.783M, 2, false, GoodItemTypeEnum.MedicalProduct, null, new GoodItemDetails(), Guid.NewGuid());
     _good3            = new GoodItem(33.75M, 3, true, GoodItemTypeEnum.Other, null, new GoodItemDetails(), Guid.NewGuid());
     _good4            = new GoodItem(4.18M, 4, false, GoodItemTypeEnum.Other, null, new GoodItemDetails(), Guid.NewGuid());
     _genericGoodItems = new List <GoodItem> {
         _good1, _good2, _good3, _good4
     };
 }
Exemplo n.º 10
0
        public void GetSalesTaxProcessBothTaxes()
        {
            //arrange
            var sut = new GoodItem(24, 1, true, GoodItemTypeEnum.Other, null, new GoodItemDetails());

            //act
            var salesTax = sut.GetSalesTax();

            //assert
            Assert.True(3.6M == salesTax); //15%
        }
Exemplo n.º 11
0
        public void GetSalesTaxProcessRegularTax()
        {
            //arrange
            var sut = new GoodItem(24, 1, false, GoodItemTypeEnum.Other, null, new GoodItemDetails());

            //act
            var salesTax = sut.GetSalesTax();

            //assert
            Assert.True(2.4M == salesTax); //10%
        }
Exemplo n.º 12
0
        public void GetSalesTaxProcessImportTax()
        {
            //arrange
            var sut = new GoodItem(24, 1, true, GoodItemTypeEnum.MedicalProduct, null, new GoodItemDetails());

            //act
            var salesTax = sut.GetSalesTax();

            //assert
            Assert.True(1.2M == salesTax); //5%
        }
Exemplo n.º 13
0
        public void CtorAreSynced()
        {
            //arrange
            //act
            var sut1 = new GoodItem(15m, 2, true, GoodItemTypeEnum.Book, null, new GoodItemDetails(), Guid.NewGuid());
            var sut2 = new GoodItem(sut1);

            //assert
            Assert.True(sut1.Equals(sut2));
            Assert.True(sut2.Equals(sut1));
        }
Exemplo n.º 14
0
        public void SetUnitPriceWorksFine()
        {
            //arrange
            var newPrice = 43.489M;
            var sut      = new GoodItem(24, 2, true, GoodItemTypeEnum.Other, null, new GoodItemDetails());

            //act
            sut.SetUnitPrice(newPrice);
            //assert
            Assert.Equal(newPrice, sut.GetUnitPrice());
        }
Exemplo n.º 15
0
        public void AddGoodItemAddsNewItem()
        {
            //arrange
            var newGoodItem = new GoodItem(9.99M, 5, false, GoodItemTypeEnum.Other, null, new GoodItemDetails("new item"), Guid.NewGuid());
            var sut         = new Order(_genericGoodItems);

            //act
            sut.AddGoodItem(newGoodItem);
            //assert
            Assert.Contains(newGoodItem, sut.GoodItems);
        }
Exemplo n.º 16
0
        public void GetTotalPriceReturnsSumPriceSalesTax()
        {
            //arrange
            var sut = new GoodItem(24, 1, false, GoodItemTypeEnum.Other, null, new GoodItemDetails());
            var expectedTotalPrice = sut.GetSalesTax() + sut.GetPrice();

            //act
            var actualTotal = sut.GetTotalPrice();

            //assert
            Assert.True(expectedTotalPrice == actualTotal);
        }
Exemplo n.º 17
0
        public void AddGoodItem(GoodItem goodItem)
        {
            var existingOrderForProduct = _goodItems
                                          .SingleOrDefault(o => Equals(o, goodItem));

            if (existingOrderForProduct != null)
            {
                existingOrderForProduct.AddUnits(goodItem.GetUnits());
            }
            else
            {
                var orderItem = new GoodItem(goodItem);
                _goodItems.Add(orderItem);
            }
        }
Exemplo n.º 18
0
        public void AddGoodItemAddsUnitsExistingItem()
        {
            //arrange
            var good2Duplicate       = new GoodItem(_good2);
            var sut                  = new Order(_genericGoodItems);
            var initialGoodItemCount = sut.GoodItems.Count;

            //act
            sut.AddGoodItem(good2Duplicate);
            var units = sut.GoodItems.FirstOrDefault(x => x.Equals(good2Duplicate))?.GetUnits();

            //assert
            Assert.Equal(4, units);
            Assert.Equal(initialGoodItemCount, sut.GoodItems.Count);
        }
Exemplo n.º 19
0
        public GoodItem(GoodItem item)
        {
            //set units
            _units = 0;
            AddUnits(item.GetUnits());
            //set unit price
            SetUnitPrice(item.GetUnitPrice());

            Id            = item.Id;
            _isImported   = item.GetImportStatus();
            _isTaxExempt  = item.GetExemptStatus();
            _discountRate = item.GetDiscountRate();
            _goodItemType = item.GetItemType();

            Details = item.Details;
        }