public void Handlers_Ignore_cancellation_confirmation_if_order_is_not_exists()
        {
            Order order = new Order(this.s1);

            OrderCancellationRequest request = new OrderCancellationRequest(order, "Cancel order request");

            this.tradingData.Get <ObservableHashSet <OrderCancellationRequest> >().Add(request);
            Assert.IsFalse(order.IsCanceled);

            OrderCancellationConfirmation confirmation = new OrderCancellationConfirmation(order, BrokerDateTime.Make(DateTime.Now), "Order canceled");

            this.tradingData.Get <ObservableHashSet <OrderCancellationConfirmation> >().Add(confirmation);

            Assert.IsFalse(order.IsCanceled);
        }
        public void OrderCancellationConfirmation_constructor_test()
        {
            Order o = new Order {
                Portfolio = "BP12345-RF-01", Symbol = "RTS-6.13_FT", TradeAction = TradeAction.Buy, OrderType = OrderType.Market, Amount = 10
            };

            DateTime cancelDate = BrokerDateTime.Make(DateTime.Now);

            OrderCancellationConfirmation co = new OrderCancellationConfirmation(o, cancelDate, "Отменен пользователем");

            Assert.IsTrue(co.Id > 0);
            Assert.AreEqual(o.Id, co.OrderId);
            Assert.AreEqual(o, co.Order);
            Assert.AreEqual(cancelDate, co.DateTime);
        }
        public void OrderCancellationConfirmation_ToString_test()
        {
            DateTime date = DateTime.Now;

            StrategyHeader strategyHeader = new StrategyHeader(1, "Description", "Portfolio", "Symbol", 10);
            Signal         signal         = new Signal(strategyHeader, date, TradeAction.Buy, OrderType.Market, 150000, 0, 0);
            Order          order          = new Order(signal);

            OrderCancellationConfirmation co = new OrderCancellationConfirmation(order, date, "Отменен пользователем");

            string result = String.Format("Подтверждение об отмене заявки {0}, {1}, {2}",
                                          date.ToString(CultureInfo.InvariantCulture),
                                          co.Description,
                                          order.ToString());

            Assert.AreEqual(result, co.ToString());
        }
        public void Handlers_Cancel_order_on_cancellation_confirmation()
        {
            Order order = new Order(this.s3);

            this.tradingData.Get <ICollection <Order> >().Add(order);

            OrderCancellationRequest request = new OrderCancellationRequest(order, "Cancel order request");

            this.tradingData.Get <ObservableHashSet <OrderCancellationRequest> >().Add(request);
            Assert.IsFalse(order.IsCanceled);

            OrderCancellationConfirmation confirmation = new OrderCancellationConfirmation(order, BrokerDateTime.Make(DateTime.Now), "Order canceled");

            this.tradingData.Get <ObservableHashSet <OrderCancellationConfirmation> >().Add(confirmation);

            Assert.IsTrue(order.IsCanceled);
            Assert.AreEqual(confirmation.DateTime, order.CancellationDate);
            Assert.AreEqual(confirmation.Description, order.CancellationReason);
        }