コード例 #1
0
        public void ShouldRegisterDeleteHandlerAndRaiseDeleteEvent()
        {
            var receivedDeletedOrders = new List <ILimitOrder>();
            var newOrder = new LimitOrder("ABC", 10, 99.22d, WayEnum.Buy, 3);

            newOrder.RegisterDeleteNotificationHandler(receivedDeletedOrders.Add);
            newOrder.Delete();
            Assert.AreEqual(1, receivedDeletedOrders.Count);
        }
コード例 #2
0
        public ILimitOrder NewLimitOrder(string symbol, int clientId, double price, int quantity, WayEnum way)
        {
            if (!ClientOrders.ContainsKey(clientId))
            {
                ClientOrders.Add(clientId, new EditableList <ILimitOrder>());
            }

            ILimitOrder toReturn = new LimitOrder(symbol, quantity, price, way, clientId);

            toReturn.SetExchangeOrderId(globalItemCounter);

            LimitOrders.Add(toReturn.ExchangeOrderId, toReturn);
            ClientOrders[clientId].Add(toReturn);
            toReturn.RegisterDeleteNotificationHandler(HandleDeletedLimitOrder);
            toReturn.RegisterFilledNotification(HandleDeletedLimitOrder);

            globalItemCounter++;
            return(toReturn);
        }
コード例 #3
0
        public void ShouldUnregisterAllHandlersOnDelete()
        {
            var receivedDeletedOrders = new List <ILimitOrder>();
            var receivedModifyOrders  = new List <ILimitOrder>();
            var newOrder = new LimitOrder("ABC", 10, 99.22d, WayEnum.Buy, 3);

            Action <ILimitOrder, int, double> modifyEventHandler;

            modifyEventHandler = (order, oldQuantity, oldPrice) =>
            {
                receivedModifyOrders.Add(order);
            };


            newOrder.RegisterDeleteNotificationHandler(receivedDeletedOrders.Add);
            newOrder.RegisterModifyNotificationHandler(modifyEventHandler);
            newOrder.Delete();
            newOrder.Modify(90, 20);
            newOrder.Delete();
            Assert.AreEqual(1, receivedDeletedOrders.Count);
            Assert.AreEqual(0, receivedModifyOrders.Count);
        }