public void TestUPSShippingIs425(ShippingOptions shippingMethod, double expectedCost)
        {
            IShippingCostStrategy shippingCostStrategy;

            switch (shippingMethod)
            {
            case ShippingOptions.FedEx:
                shippingCostStrategy = new ShippingCostStrategyFedEx();
                break;

            case ShippingOptions.UPS:
                shippingCostStrategy = new ShippingCostStrategyUPS();
                break;

            case ShippingOptions.USPS:
                shippingCostStrategy = new ShippingCostStrategyUSPS();
                break;

            default:
                throw new ArgumentException($"Unknown shipping method: {shippingMethod}");
            }

            var shippingCalculator = new ShippingCostCalculatorService(shippingCostStrategy);
            var order = TestHelpers.CreateOrder(shippingMethod);
            var cost  = shippingCalculator.CalculateShippingCost(order);

            Assert.AreEqual((decimal)expectedCost, cost);
        }
        public void Return_3_When_Shipping_Via_Usps()
        {
            var service = new ShippingCostCalculatorService(
                new UspsShippingCostStrategy());

            var cost = service.CalculateShippingCost(new Order());

            Assert.Equal(3, cost);
        }
        public void Return_5_When_Shipping_Via_FedEx()
        {
            var service = new ShippingCostCalculatorService(
                new FedExShippingCostStrategy());

            var cost = service.CalculateShippingCost(new Order());

            Assert.Equal(5, cost);
        }
Ejemplo n.º 4
0
        public void When_shipping_via_UPS_The_shipping_cost_is_425()
        {
            var strategy = new UPSShippingCostStrategy();
            var shippingCalculatorService = new ShippingCostCalculatorService(strategy);
            var order = Mother.CreateOrder_UPS();
            var cost  = shippingCalculatorService.CalculateShippingCost(order);

            Assert.AreEqual(4.25d, cost);
        }
Ejemplo n.º 5
0
        public void When_shipping_via_FedEx_The_shipping_cost_is_5()
        {
            var strategy = new FedExShippingCostStrategy();
            var shippingCalculatorService = new ShippingCostCalculatorService(strategy);
            var order = Mother.CreateOrder_FedEx();
            var cost  = shippingCalculatorService.CalculateShippingCost(order);

            Assert.AreEqual(5.00d, cost);
        }
Ejemplo n.º 6
0
        public void When_shipping_via_FedEx_the_cost_is_500()
        {
            var strategy = new FedExStrategy();
            var shippingCalculatorService = new ShippingCostCalculatorService(strategy);
            var order = new Order();
            //var order = Mother.CreateOrder_UPS();
            var cost = shippingCalculatorService.CalculateShippingCost(order);

            Assert.AreEqual(5.00, cost);
            Assert.AreEqual(1, order.Id);
        }
Ejemplo n.º 7
0
        public static void Main(string[] args)
        {
            Func <Order, double> fedExStrategy = CalcForFedEx;
            Func <Order, double> upsStrategy   = delegate(Order order) { return(4.00d); };
            Func <Order, double> uspsStrategy  = order => 3.25d;

            Order theOrder = Mother.CreateOrder();

            var calculatorService = new ShippingCostCalculatorService();

            Console.WriteLine("FedEx Shipping Cost: " +
                              calculatorService.CalculateShippingCost(theOrder, fedExStrategy));

            Console.WriteLine("UPS Shipping Cost: " +
                              calculatorService.CalculateShippingCost(theOrder, upsStrategy));

            Console.WriteLine("USPS Shipping Cost: " +
                              calculatorService.CalculateShippingCost(theOrder, uspsStrategy));

            Console.ReadKey();
        }
Ejemplo n.º 8
0
        static void executeStrategy()
        {
            var strategy = new FedExShippingCostStrategy();
            ShippingCostCalculatorService shippingCostCalculatorService = new ShippingCostCalculatorService(strategy);
            var order = new Order()
            {
                ShippingMethod = "FedEx",
                Destination    = "1234 Desmesa St. Makati City philippines",
                Origin         = "123 Linoln St. America"
            };

            var cost = shippingCostCalculatorService.CalculateShippingCost(order);

            Console.WriteLine("Shipping Method: " + order.ShippingMethod);
            Console.WriteLine("Destination: " + order.Destination);
            Console.WriteLine("Origin: " + order.Origin);

            Console.WriteLine("Cost: " + cost);
            Console.ReadKey();
        }