public void ShouldCallDispatcherWhenLimitOrderValidates() { var processor = new IncomingMessageProcessor(ordereRepositoryMock, outgoingQueueMock, dateServiceMock, orderDispatcherMock, serializer); var limitOrder = new LimitOrderDto(); limitOrder.Reeset(); limitOrder.Symbol = "QQQ"; limitOrder.Price = 30; limitOrder.Quantity = 10; limitOrder.ClientId = 1; limitOrder.Way = WayEnum.Sell; var messageBytes = serializer.Serialize(new ClientToServerMessageQueueItem { Message = new ClientToServerMessage { ClientId = 1, LimitOrder = limitOrder, MessageType = ClientToServerMessageTypeEnum.PlaceLimitOrder } }); var queueItem = new RingbufferByteArray(); queueItem.Set(messageBytes); processor.OnNext(queueItem, 1, true); orderDispatcherMock.AssertWasCalled(a => a.HandleAddLimitOrder(Arg <ILimitOrder> .Is.Equal(limitOrder))); }
public void ShouldNotCallDispatcherIfOrderDoesNotValidate() { var processor = new IncomingMessageProcessor(ordereRepositoryMock, outgoingQueueMock, dateServiceMock, orderDispatcherMock, serializer); var invalidLimitOrder = new LimitOrderDto(); invalidLimitOrder.Reeset(); var messageBytes = serializer.Serialize(new ClientToServerMessageQueueItem { Message = new ClientToServerMessage { ClientId = 1, LimitOrder = invalidLimitOrder, MessageType = ClientToServerMessageTypeEnum.PlaceLimitOrder }, }); var queueItem = new RingbufferByteArray(); queueItem.Set(messageBytes); processor.OnNext(queueItem, 1, true); orderDispatcherMock.AssertWasNotCalled(a => a.HandleAddLimitOrder(Arg <ILimitOrder> .Is.Anything)); outgoingQueueMock.AssertWasNotCalled(a => a.EnqueueAddedLimitOrder(Arg <ILimitOrder> .Is.Anything)); }
public void ShouldNotCallDispatcherWhenLimitOrderIsInvalidOnCancelOrder() { var processor = new IncomingMessageProcessor(ordereRepositoryMock.Object, outgoingQueueMock.Object, dateServiceMock.Object, orderDispatcherMock.Object, serializer); var limitOrder = new LimitOrderDto(); limitOrder.Reeset(); var messageBytes = serializer.Serialize(new ClientToServerMessageQueueItem { Message = new ClientToServerMessage { ClientId = 1, LimitOrder = limitOrder, MessageType = ClientToServerMessageTypeEnum.CancelLimitOrder } }); var queueItem = new RingbufferByteArray(); queueItem.Set(messageBytes); processor.OnEvent(queueItem, 1, true); orderDispatcherMock.Verify(a => a.HandleAddLimitOrder(It.IsAny <ILimitOrder>()), Times.Never()); }
public void ShouldCallDispatcherWhenLimitOrderValidates() { var processor = new IncomingMessageProcessor(ordereRepositoryMock.Object, outgoingQueueMock.Object, dateServiceMock.Object, orderDispatcherMock.Object, serializer); var limitOrder = new LimitOrderDto(); limitOrder.Reeset(); limitOrder.Symbol = "QQQ"; limitOrder.Price = 30; limitOrder.Quantity = 10; limitOrder.ClientId = 1; limitOrder.Way = WayEnum.Sell; var messageBytes = serializer.Serialize(new ClientToServerMessageQueueItem { Message = new ClientToServerMessage { ClientId = 1, LimitOrder = limitOrder, MessageType = ClientToServerMessageTypeEnum.PlaceLimitOrder } }); var queueItem = new RingbufferByteArray(); queueItem.Set(messageBytes); processor.OnEvent(queueItem, 1, true); orderDispatcherMock.Verify(a => a.HandleAddLimitOrder(It.Is <ILimitOrder>(order => order.Symbol == limitOrder.Symbol && order.Price == limitOrder.Price && order.Quantity == limitOrder.Quantity && order.ClientId == limitOrder.ClientId && order.Way == limitOrder.Way )), Times.Once); }