Esempio n. 1
0
        public void DeveryScenario_Should_Work()
        {
            // Arrange
            var shoppingCart = new ShoppingCart(1);
            var category     = new FirstCategory(1, "Food");
            var apple        = new FirstProduct(1, "Apple", 100, category);
            var almonds      = new FirstProduct(1, "Almonds", 150, category);

            shoppingCart.AddProduct(apple, 3);
            shoppingCart.AddProduct(almonds);

            var campaign1 = new CampaignDiscountByPercentage(1, "Food Campaign 1", 20, category, 3);
            var campaign2 = new CampaignDiscountByPercentage(2, "Food Campaign 2", 50, category, 5);
            var campaign3 = new CampaignDiscountByAmount(3, "Food Campaign 3", 5, category, 0);
            var campaigns = new List <CampaignBase>()
            {
                campaign1, campaign2, campaign3
            };

            var coupon = new CouponDiscountByPercentage(1, 100, 10);

            shoppingCart.AddCoupon(coupon);

            var delivery = new DeliverDynamic((decimal)2.99, 5, 3);

            // Act

            shoppingCart.ApplyDiscounts(campaigns);

            shoppingCart.ApplayDelivery(delivery);
            // Assert
            Assert.True(shoppingCart._isCouponApplied == true && shoppingCart._isCampaignApplied == true);
        }
Esempio n. 2
0
        public void Create_Product_ShouldWork_Tehory(int id, string title, decimal price)
        {
            // Arrange
            CategoryBase category = new FirstCategory(1, "First");
            // Act
            var test = new FirstProduct(id, title, price, category);

            // Assert
            Assert.True(test != null && test._id == id && test._title.Equals(title));
        }
Esempio n. 3
0
        public void AddProduct_ShouldWork()
        {
            // Arrange
            var test     = new ShoppingCart(1);
            var category = new FirstCategory(1, "test");
            var product  = new FirstProduct(1, "test", 1, category);

            // Act
            test.AddProduct(product);

            // Assert
            Assert.True(test._cartCoupons != null && test._selectedProducts.Contains(product));
        }
Esempio n. 4
0
        public void DeleteProduct_ShouldWork_Theory(int id, int count)
        {
            // Arrange
            var test     = new ShoppingCart(1);
            var category = new FirstCategory(1, "test");
            var product  = new FirstProduct(1, "test", 1, category);

            test.AddProduct(product);

            // Act
            test.DeleteProduct(id, count);
            // Assert
            Assert.True(test._selectedProducts.Count == 1);
        }
Esempio n. 5
0
        public void CalculateSumPriceOfProductList_Shold_Work()
        {
            // Arrange
            var products = new List <ProductBase>();
            var category = new FirstCategory(1, "test");
            var product  = new FirstProduct(1, "test", 10, category);

            products.Add(product);
            // Act
            var test_Price = Helper.CalculateSumPriceOfProductList(products);

            // Assert
            Assert.True(test_Price == 10);
        }
Esempio n. 6
0
        public void ApplyCampaigns_Should_Work()
        {
            // Arrange
            var shoppingCart = new ShoppingCart(1);
            var category     = new FirstCategory(1, "test");
            var product      = new FirstProduct(1, "test", 100, category);
            var product2     = new FirstProduct(1, "test", 100, category);
            var product3     = new FirstProduct(1, "test", 100, category);

            shoppingCart.AddProduct(product);
            shoppingCart.AddProduct(product2);
            shoppingCart.AddProduct(product3);

            // Act
            shoppingCart.ApplyCampaigns(new List <CampaignBase>());

            // Assert
            Assert.True(shoppingCart._isCampaignApplied == true);
        }
Esempio n. 7
0
        public void AddCoupon_Should_Work()
        {
            // Arrange
            var shoppingCart = new ShoppingCart(1);
            var category     = new FirstCategory(1, "test");
            var product      = new FirstProduct(1, "test", 100, category);
            var product2     = new FirstProduct(1, "test", 100, category);
            var product3     = new FirstProduct(1, "test", 100, category);

            shoppingCart.AddProduct(product);
            shoppingCart.AddProduct(product2);
            shoppingCart.AddProduct(product3);

            var coupon = new CouponDiscountByAmount(1, 100, 20);

            shoppingCart.AddCoupon(coupon);

            // Act
            shoppingCart.ApplyCoupon();
            // Assert
            Assert.True(shoppingCart._isCouponApplied == true);
        }
Esempio n. 8
0
 public void BuildProduct()
 {
     product = new FirstProduct();
 }
 public void ClickFirstProductLink()
 {
     FirstProduct.Click();
 }
Esempio n. 10
0
        static void Main(string[] args)
        {
            var shoppingCart = new ShoppingCart(1);
            var category     = new FirstCategory(1, "Food");
            var apple        = new FirstProduct(1, "Apple", 100, category);
            var almonds      = new FirstProduct(2, "Almonds", 150, category);

            shoppingCart.AddProduct(apple, 3);
            shoppingCart.AddProduct(almonds);

            var campaign1 = new CampaignDiscountByPercentage(1, "Food Campaign 1", 20, category, 3);
            var campaign2 = new CampaignDiscountByPercentage(2, "Food Campaign 2", 50, category, 5);
            var campaign3 = new CampaignDiscountByAmount(3, "Food Campaign 3", 5, category, 0);
            var campaigns = new List <CampaignBase>()
            {
                campaign1, campaign2, campaign3
            };

            var coupon = new CouponDiscountByPercentage(1, 100, 10);

            shoppingCart.AddCoupon(coupon);

            var delivery = new DeliverDynamic((decimal)2.99, 5, 3);

            // Act

            shoppingCart.ApplyDiscounts(campaigns);

            shoppingCart.ApplayDelivery(delivery);
            Console.WriteLine("Indirim öncesi Tutar : " + shoppingCart.SumOfProducts);
            Console.WriteLine("Indirim sonrası Tutar : " + shoppingCart.TotalAmountAfterDiscount);
            Console.WriteLine("Kullanılan Kopon : " + shoppingCart._couponTotalDiscount);
            Console.WriteLine("Kampanya indirimi : " + shoppingCart._campaignMaxDiscount);

            var campaignsHasMaxDiscountByCategory = from c in shoppingCart._selectedProducts
                                                    group c by c._category into ctg
                                                    select ctg;

            foreach (var item in campaignsHasMaxDiscountByCategory)
            {
                var appliedCampaign = shoppingCart._appliedCampaigns.FirstOrDefault(x => x._category == item.Key);
                Console.Write(item.First()._category._title);
                if (appliedCampaign != null)
                {
                    Console.Write("  uygulanan kampanya :  " + appliedCampaign._calculatedDiscountAmount);
                }
                Console.WriteLine();

                var produsctTypes = from c in item
                                    group c by c._id into prd
                                    select prd;

                foreach (var item2 in produsctTypes)
                {
                    Console.WriteLine(item2.First()._title + " " + item2.Count() + " " + item2.Sum(x => x._price));
                }
            }


            Console.WriteLine("Kargo maliyeti : " + shoppingCart._deliveryCost);
            Console.WriteLine("Toplam Maliyet Tutarı : " + shoppingCart.TotalySumAffterDelivery);

            Console.ReadLine();
        }