Exemple #1
0
        public Strategy()
        {
            var logName = this.GetType().FullName;

            if (this.GetType().Name != Name)
            {
                logName += "." + Name;
            }
            instanceLog = Factory.SysLog.GetLogger(logName);
            debug       = instanceLog.IsDebugEnabled;
            trace       = instanceLog.IsTraceEnabled;
            position    = new PositionCommon(this);
            if (trace)
            {
                instanceLog.Trace("Constructor");
            }
            Chain.Dependencies.Clear();
            isStrategy = true;
            result     = new Result(this);

            exitActiveNow            = new ExitCommon(this);
            enterActiveNow           = new EnterCommon(this);
            reverseActiveNow         = new ReverseCommon(this);
            changeActiveNow          = new ChangeCommon(this);
            changeNextBar            = new ChangeCommon(this);
            changeNextBar.Orders     = changeActiveNow.Orders;
            changeNextBar.IsNextBar  = true;
            reverseNextBar           = new ReverseCommon(this);
            reverseNextBar.Orders    = reverseActiveNow.Orders;
            reverseNextBar.IsNextBar = true;
            exitNextBar            = new ExitCommon(this);
            exitNextBar.Orders     = exitActiveNow.Orders;
            exitNextBar.IsNextBar  = true;
            enterNextBar           = new EnterCommon(this);
            enterNextBar.Orders    = enterActiveNow.Orders;
            enterNextBar.IsNextBar = true;
            orders = new OrderHandlers(enterActiveNow, enterNextBar,
                                       exitActiveNow, exitNextBar,
                                       reverseActiveNow, reverseNextBar,
                                       changeActiveNow, changeNextBar);

            // Interceptors.
            performance  = new Performance(this);
            exitStrategy = new ExitStrategy(this);

            preFillManager                       = new FillManager(this);
            postFillManager                      = new FillManager(this);
            postFillManager.PostProcess          = true;
            postFillManager.ChangePosition       = exitStrategy.Position.Change;
            postFillManager.DoStrategyOrders     = false;
            postFillManager.DoStrategyOrders     = false;
            postFillManager.DoExitStrategyOrders = true;
        }
        public void ShouldReturFalseWhenOrderShipIsInvalid()
        {
            Guid OrderId = Guid.Empty;
            var  Data    = DateTime.Now.AddHours(-1);

            var ship         = new ShipOrderCommand(Data, OrderId);
            var orderHandler = new OrderHandlers(new FakeOrderRepository());
            var result       = orderHandler.Handle(ship);


            Assert.IsTrue(orderHandler.Invalid);
        }
        public void ShouldReturtrueWhenOrderShipIsValid()
        {
            var OrderId = Guid.NewGuid();
            var Data    = DateTime.Now.AddHours(1);

            var ship         = new ShipOrderCommand(Data, OrderId);
            var orderHandler = new OrderHandlers(new FakeOrderRepository());
            var result       = orderHandler.Handle(ship);


            Assert.IsTrue(orderHandler.IsValid);
        }
    public void Run()
    {
        var types = new List <Type>
        {
            typeof(Class1),
            typeof(Class2),
            typeof(Class3)
        };
        var handlerDependencies = OrderHandlers.GetHandlerDependencies(types);

        Assert.Contains(typeof(Class2), handlerDependencies[typeof(Class1)]);
        Assert.Contains(typeof(Class3), handlerDependencies[typeof(Class1)]);
        Assert.Contains(typeof(Class3), handlerDependencies[typeof(Class2)]);
    }
        public void ShouldReturtrueWhenOrderIsValid()
        {
            List <OrderItemCommand> items = new List <OrderItemCommand>();

            var Item1 = new OrderItemCommand(Guid.NewGuid(), 10.23m, 5);
            var Item2 = new OrderItemCommand(Guid.NewGuid(), 15.23m, 5);
            var Item3 = new OrderItemCommand(Guid.NewGuid(), 35.23m, 5);

            items.Add(Item1);
            items.Add(Item2);
            items.Add(Item3);

            var placeOrderCommand = new PlaceOrderCommand(Guid.NewGuid(), items);
            var orderHandler      = new OrderHandlers(new FakeOrderRepository());

            orderHandler.Handle(placeOrderCommand);

            Assert.IsTrue(orderHandler.IsValid);
        }
Exemple #6
0
        public void Dado_um_promocode_inexistente_o_pedido_deve_ser_gerado_normalmente()
        {
            var createOrderCommand = new CreateOrderCommand();

            createOrderCommand.Customer  = "12345678911";
            createOrderCommand.ZipCode   = "12345678";
            createOrderCommand.PromoCode = string.Empty;
            createOrderCommand.Items.Add(new CreateOrderItemCommand(Guid.NewGuid(), 1));
            createOrderCommand.Items.Add(new CreateOrderItemCommand(Guid.NewGuid(), 1));

            var handler = new OrderHandlers(
                _customerRepository,
                _deliveryFeeRepository,
                _discountRepository,
                _productRepository,
                _orderRepository
                );

            handler.Handle(createOrderCommand);
            Assert.AreEqual(handler.Valid, true);
        }
Exemple #7
0
 public OrderController(IOrderRepository repository, OrderHandlers handle)
 {
     _repository = repository;
     _handle     = handle;
 }
 private static void Run()
 {
     MessageHandlers.PrintWelcome();
     OrderHandlers.HandleOrder();
 }