public static IShippingCourier CreateShippingCourierFor(Order order)
 {
     if ((order.TotalCost > 100) || (order.WeightInKG > 5))
         return new DHL();
     else
         return new RoyalMail();
 }
        public void UKShippingCourierFactory_Should_Create_RoyalMail_Shipping_Courier_For_An_Order_With_A_Weight_In_KG_5_And_Under()
        {
            Order order = new Order() { WeightInKG = 5 };

            IShippingCourier courier = UKShippingCourierFactory.CreateShippingCourierFor(order);

            Assert.IsInstanceOfType(courier, typeof(RoyalMail));
        }
        public void UKShippingCourierFactory_Should_Create_DHL_Shipping_Courier_For_An_Order_With_A_Weight_In_KG_Over_5()
        {
            Order order = new Order() { WeightInKG = 6 };

            IShippingCourier courier = UKShippingCourierFactory.CreateShippingCourierFor(order);

            Assert.IsInstanceOfType(courier, typeof(DHL));
        }
        public void UKShippingCourierFactory_Should_Create_DHL_Shipping_Courier_For_An_Order_With_A_TotalCost_Of_Over_100()
        {
            Order order = new Order() { TotalCost = 101 };

            IShippingCourier courier = UKShippingCourierFactory.CreateShippingCourierFor(order);

            Assert.IsInstanceOfType(courier, typeof(DHL));
        }