Esempio n. 1
0
        static void CheckBug()
        {
            List <IProduct> books = new List <IProduct>();

            PaperBook TolkienPaperBook1 = new PaperBook("Silmarillion", "Tolkien", 500);

            books.Add(TolkienPaperBook1);

            PaperBook TolkienPaperBook2 = new PaperBook("Hobbit", "Tolkien", 300);

            books.Add(TolkienPaperBook2);

            PaperBook ZelaznyPaperBook1 = new PaperBook("Nine Princes in Amber", "Zelazny", 400);

            books.Add(ZelaznyPaperBook1);

            DeliveryCalculator calculator   = new DeliveryCalculator();
            ActionProvider     provider     = new ActionProvider();
            ShoppingCart       cart         = new ShoppingCart(calculator, provider);
            List <IPromo>      listOfPromos = new List <IPromo> {
            };
            IPromo promo1 = new PercentDiscountPromo(20);

            listOfPromos.Add(promo1);
            IPromo promo2 = new FreeBookPromo(ZelaznyPaperBook1);

            listOfPromos.Add(promo2);
            decimal finalPrice = cart.GetTotalPrice(books, listOfPromos);

            Console.WriteLine(finalPrice);
        }
 public void GetCost_UnknownType_ThrowsException()
 {
     Assert.Throws <System.ArgumentException>(() =>
     {
         DeliveryCalculator.GetCost(new object());
     });
 }
        public void GetCost_Envelope_DistanceEqualsCost(int distance)
        {
            var envelope   = new Envelope(distance);
            var actualCost = DeliveryCalculator.GetCost(envelope);

            Assert.That(actualCost, Is.EqualTo(distance));
        }
        public void GetCost_Meal_FixedCost(
            bool isHot,
            double expectedCost)
        {
            var meal       = new Meal(isHot);
            var actualCost = DeliveryCalculator.GetCost(meal);

            Assert.That(actualCost, Is.EqualTo(expectedCost));
        }
        public void GetCost_HeavyPackage_ProductOfDistance(
            [Values(100, 200, 300)] int distance,
            [Values(10, 20)] int weight)
        {
            var package      = new Package(distance, weight);
            var actualCost   = DeliveryCalculator.GetCost(package);
            var expectedCost = distance * 3;

            Assert.That(actualCost, Is.EqualTo(expectedCost));
        }
        public void GetCost_LightPackage_ProductOfDistance(
            [Random(0, 100, 5)] int distance,
            [Random(0, 9, 5)] int weight)
        {
            var package      = new Package(distance, weight);
            var actualCost   = DeliveryCalculator.GetCost(package);
            var expectedCost = distance * 2;

            Assert.That(actualCost, Is.EqualTo(expectedCost));
        }
Esempio n. 7
0
        static void PercentDiscount()
        {
            List <IProduct> books = new List <IProduct>();

            PaperBook TolkienPaperBook1 = new PaperBook("Silmarillion", "Tolkien", 500);

            books.Add(TolkienPaperBook1);

            PaperBook TolkienPaperBook2 = new PaperBook("Hobbit", "Tolkien", 300);

            books.Add(TolkienPaperBook2);

            DeliveryCalculator calculator   = new DeliveryCalculator();
            ActionProvider     provider     = new ActionProvider();
            ShoppingCart       cart         = new ShoppingCart(calculator, provider);
            IPromo             promo        = new PercentDiscountPromo(20);
            List <IPromo>      listOfPromos = new List <IPromo> {
                promo
            };
            decimal finalPrice = cart.GetTotalPrice(books, listOfPromos);

            Console.WriteLine(finalPrice);
        }
Esempio n. 8
0
        static void TenPercentForJournals()
        {
            List <IProduct> books = new List <IProduct>();

            PaperJournal WhiteDwarf1 = new PaperJournal("WhiteDwarf1", "GW", 100, 2020, 1);

            books.Add(WhiteDwarf1);

            PaperJournal WhiteDwarf2 = new PaperJournal("WhiteDwarf2", "GW", 200, 2020, 3);

            books.Add(WhiteDwarf2);

            PaperJournal WhiteDwarf3 = new PaperJournal("WhiteDwarf3", "GW", 300, 2020, 5);

            books.Add(WhiteDwarf3);

            PaperJournal WhiteDwarf4 = new PaperJournal("WhiteDwarf4", "GW", 400, 2020, 6);

            books.Add(WhiteDwarf4);

            PaperJournal WhiteDwarf5 = new PaperJournal("WhiteDwarf5", "GW", 500, 2020, 7);

            books.Add(WhiteDwarf5);

            PaperJournal WhiteDwarf6 = new PaperJournal("WhiteDwarf5", "GW", 500, 2020, 11);

            books.Add(WhiteDwarf6);


            DeliveryCalculator calculator   = new DeliveryCalculator();
            ActionProvider     provider     = new ActionProvider();
            ShoppingCart       cart         = new ShoppingCart(calculator, provider);
            List <IPromo>      listOfPromos = new List <IPromo>();
            decimal            finalPrice   = cart.GetTotalPrice(books, listOfPromos);

            Console.WriteLine(finalPrice);
        }
Esempio n. 9
0
        static void FreeEBookAction()
        {
            List <IProduct> books = new List <IProduct>();

            PaperBook TolkienPaperBook1 = new PaperBook("Silmarillion", "Tolkien", 500);

            books.Add(TolkienPaperBook1);

            PaperBook TolkienPaperBook2 = new PaperBook("Hobbit", "Tolkien", 300);

            books.Add(TolkienPaperBook2);

            EBook TolkienEBook1 = new EBook("Fellowship of the ring", "Tolkien", 300);

            books.Add(TolkienEBook1);

            DeliveryCalculator calculator   = new DeliveryCalculator();
            ActionProvider     provider     = new ActionProvider();
            ShoppingCart       cart         = new ShoppingCart(calculator, provider);
            List <IPromo>      listOfPromos = new List <IPromo>();
            decimal            finalPrice   = cart.GetTotalPrice(books, listOfPromos);

            Console.WriteLine(finalPrice);
        }
Esempio n. 10
0
        static void OnlyEBooks()
        {
            List <IProduct> books = new List <IProduct>();

            EBook ZelaznyEBook1 = new EBook("The Hand of Oberon", "Zelazny", 400);

            books.Add(ZelaznyEBook1);

            EBook ZelaznyEBook2 = new EBook("The Courts of Chaos", "Zelazny", 900);

            books.Add(ZelaznyEBook2);

            EBook TolkienEBook1 = new EBook("Fellowship of the ring", "Tolkien", 300);

            books.Add(TolkienEBook1);

            DeliveryCalculator calculator   = new DeliveryCalculator();
            ActionProvider     provider     = new ActionProvider();
            ShoppingCart       cart         = new ShoppingCart(calculator, provider);
            List <IPromo>      listOfPromos = new List <IPromo>();
            decimal            finalPrice   = cart.GetTotalPrice(books, listOfPromos);

            Console.WriteLine(finalPrice);
        }
 public void Setup()
 {
     _fileReader         = new FileReader();
     _deliveryCalculator = new DeliveryCalculator();
 }
Esempio n. 12
0
 public DeliveryCalculatorTests()
 {
     _sut = new DeliveryCalculator();
 }