예제 #1
0
        public void Correct_Coupon_Discount_Work()
        {
            //Ürünleri getir.
            var product1 = _productBusiness.GetById(400);
            var product2 = _productBusiness.GetById(401);
            var product3 = _productBusiness.GetById(402);
            var product4 = _productBusiness.GetById(403);
            var product5 = _productBusiness.GetById(404);
            var product6 = _productBusiness.GetById(405);

            //Sepet nesnesini oluştur.
            var cart = new Cart();

            //Sepete ürünleri ekle.
            cart = _cartBusiness.AddProduct(cart, product1, 1);
            cart = _cartBusiness.AddProduct(cart, product2, 1);
            cart = _cartBusiness.AddProduct(cart, product3, 2);
            cart = _cartBusiness.AddProduct(cart, product4, 3);
            cart = _cartBusiness.AddProduct(cart, product5, 2);
            cart = _cartBusiness.AddProduct(cart, product6, 2);

            //Sepet işlemlerini gerçekleştir.
            cart = _cartBusiness.ApplyCampaigns(cart);

            //Test kuponunu getir.
            var testCoupon = _couponBusiness.GetByCode("numubt1m41uf");

            //Sepete kupon indirimi uygulanmış olması gerekiyor mu?
            var expectedValue = cart.Amount >= testCoupon.MinimumAmount;

            //Kupon koduna ait kupon varsa ve indirimi geçerli ise uygula.
            cart = _cartBusiness.ApplyCoupon(cart, testCoupon.Code);

            //Sepete kupon uygulanmış mı?
            var actualValue = cart.ValidCoupon != null;

            Assert.AreEqual(expectedValue, actualValue);
        }
예제 #2
0
        public Cart ApplyCoupon(Cart cart, string couponCode)
        {
            var coupon = _couponBusiness.GetByCode(couponCode);                                       //Kupon koduna göre kuponu getir.

            if (coupon != null)                                                                       //Kupon var mı?
            {
                cart.ValidCoupon = coupon;                                                            //Sepetteki geçerli kupon nesnesine kuponu ekle.

                if (coupon.MinimumAmount <= cart.Amount)                                              //Sepet tutarı, kuponun minimum tutarına eşit yada fazla mı?
                {
                    if (cart.DiscountAmount == 0)                                                     //Sepete daha önce indirim uygulanmadı ise.
                    {
                        cart.DiscountAmount = cart.Amount - (cart.Amount * (coupon.Discount * 0.01)); //Sepet toplam tutarına indirim uygula.
                    }
                    else //Sepete daha önce indirim uygulandı ise.
                    {
                        cart.DiscountAmount = cart.DiscountAmount - (cart.Amount * (coupon.Discount * 0.01)); //Sepet indirim tutarına indirim uygula.
                    }
                }
            }

            return(cart);
        }