public decimal CalculateTax(Order order)
 {
     if (order.StateCode == "OH")
         return Math.Round(order.TotalPriceOfAllProducts * .07m, 2);
     else if (order.StateCode == "MI")
         return Math.Round(order.TotalPriceOfAllProducts * .065m, 2);
     return 0;
 }
        protected override void Establish_context()
        {
            var productRepository = ObjectFactory.GetInstance<ISaveObjectService<Product>>();
            var orderRepository = ObjectFactory.GetInstance<ISaveObjectService<Order>>();

            var product = new Product { Price = 10, IsActive = true, Name = "foo" };
            productRepository.Create(product);

            _order = new Order
                         {
                             StateCode = "OH",
                             Products = new List<Product> { product }
                         };
            orderRepository.Create(_order);
            _orderProcessor = ObjectFactory.GetInstance<IOrderProcessor>();
        }
 public ActionResult AddToOrder(int productId)
 {
     var product = _getProductService.Get(productId);
     var orderId = (int?) _session["OrderId"];
     if (orderId != null)
     {
         var order = _getOrderService.Get(orderId.Value);
         order.Products.Add(product);
         _saveOrderService.Update(order);
     }
     else
     {
         var order = new Order();
         order.Products.Add(product);
         _saveOrderService.Create(order);
         _session["OrderId"] = order.OrderId;
     }
     return RedirectToAction("Index");
 }
        protected override void Establish_context()
        {
            base.Establish_context();

            // order
            _order = new Order
                         {
                             OrderId = 111,
                             StateCode = "OH"
                         };
            _mocker.Get<IGetObjectService<Order>>().Stub(s => s.Get(111)).Return(_order);
            _session["OrderId"] = 111;

            _mocker.Get<IGetProductService>().Stub(s => s.Get(3)).Return(new Product { ProductId = 3 });
        }
        protected override void Establish_context()
        {
            base.Establish_context();

            // order
            var order = new Order
                            {
                                OrderId = 111,
                                Products = new List<Product> { _product1, _product2 },
                                StateCode = "OH"
                            };
            _mocker.Get<IGetObjectService<Order>>().Stub(s => s.Get(111)).Return(order);
            _session["OrderId"] = 111;

            // order processor - we've already tested that the order
            // processor works, so we don't need to do it again
            var orderProcessor = _mocker.Get<IOrderProcessor>();
            orderProcessor.Stub(op => op.SubtotalBeforeTaxAndShipping(order)).Return(3.33m);
            orderProcessor.Stub(op => op.ShippingCharges(order)).Return(5);
            orderProcessor.Stub(op => op.Tax(order)).Return(0.23m);
            orderProcessor.Stub(op => op.TotalPrice(order)).Return(8.56m);
        }
 protected override void Establish_context()
 {
     _order = OrderBuilder.CreateOrderWithProductsForState("OH");
 }