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); }
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); }