Esempio n. 1
0
        private void ApplyCouponToCart()
        {
            var couponManager  = new CouponManager(_shoppingCartRepository);
            var discountAmount = couponManager.GetCouponDiscountAmountForCart();

            _shoppingCartRepository.SetDiscountAmountByCoupon(discountAmount);
        }
Esempio n. 2
0
        public void WhenGetCouponDiscount_IfCampaignOfCartIsNull_Expect0()
        {
            var cart = new Mock <IShoppingCartRepository>();

            cart.Setup(c => c.GetCart()).Returns(new ShoppingCart());

            var manager = new CouponManager(cart.Object);
            var result  = manager.GetCouponDiscountAmountForCart();

            Assert.Equal(0, result);
        }
Esempio n. 3
0
        public void WhenGetCouponDiscount_NotEnoughCartAmount_Expect0()
        {
            var campaignRepository = new Mock <ICampaignRepository>();
            var repository         = new ShoppingCartRepository();
            var service            = new ShoppingCartService(repository, campaignRepository.Object, _couponRepository);

            service.ApplyCoupon(_coupon);

            var manager = new CouponManager(repository);
            var result  = manager.GetCouponDiscountAmountForCart();

            Assert.Equal(0, result);
        }
Esempio n. 4
0
        public void WhenGetCouponDiscount_GetSuccessfully()
        {
            var campaignRepository = new Mock <ICampaignRepository>();
            var product            = new Product("Iphone 5S", 1000, new Category("Phone"));
            var repository         = new ShoppingCartRepository();
            var service            = new ShoppingCartService(repository, campaignRepository.Object, _couponRepository);

            service.AddItem(product, 1);
            service.ApplyCoupon(_coupon);
            var expectedDiscount = 100;

            var manager        = new CouponManager(repository);
            var couponDiscount = manager.GetCouponDiscountAmountForCart();

            Assert.Equal(expectedDiscount, couponDiscount);
        }