/// <summary> /// Called when a publisher has committed an event to the <see cref="T:Disruptor.RingBuffer`1"/> /// </summary> /// <param name="data">Data committed to the <see cref="T:Disruptor.RingBuffer`1"/></param><param name="sequence">Sequence number committed to the <see cref="T:Disruptor.RingBuffer`1"/></param><param name="endOfBatch">flag to indicate if this is the last event in a batch from the <see cref="T:Disruptor.RingBuffer`1"/></param> public void OnNext(MessageQueueObject data, long sequence, bool endOfBatch) { // Send Data to Client _tradeManagerClient.SendExecution(data); }
public void NewExecution_SendInformationToTradeManagerServer_ExecutionReceivedByServer() { Thread.Sleep(2000); bool executionReceived = false; var executionManualResetEvent = new ManualResetEvent(false); // Create Order Object Order order = new Order(OrderExecutionProvider.Simulated) { OrderID = "1", OrderSide = OrderSide.BUY, Security = new Security() { Symbol = "GOOG" } }; // Create Fill Object Fill fill = new Fill(new Security() { Symbol = "GOOG" }, OrderExecutionProvider.Simulated, "1"); fill.ExecutionId = "1"; fill.ExecutionSide = OrderSide.BUY; fill.ExecutionSize = 40; fill.ExecutionDateTime = new DateTime(2014, 01, 22, 18, 20, 57); // Create Execution Object Execution execution = new Execution(fill, order); Execution executionReceivedObject = null; _tradeManagerMqServer.NewExecutionReceivedEvent += delegate(Execution executionObject) { executionReceivedObject = executionObject; executionReceived = true; executionManualResetEvent.Set(); }; byte[] message = Encoding.UTF8.GetBytes(execution.DataToPublish()); var requestMessage = new MessageQueueObject(); requestMessage.Message = message; // Publish Execution to MQ Exchange _tradeManagerClient.SendExecution(requestMessage); executionManualResetEvent.WaitOne(10000, false); Assert.AreEqual(true, executionReceived, "Execution Received"); Assert.AreEqual(execution.Order.OrderExecutionProvider, executionReceivedObject.Order.OrderExecutionProvider, "Order Execution Provider"); Assert.AreEqual(execution.Order.OrderID, executionReceivedObject.Order.OrderID, "Order ID"); Assert.AreEqual(execution.Order.Security.Symbol, executionReceivedObject.Order.Security.Symbol, "Order Symbol"); Assert.AreEqual(execution.Order.OrderSide, executionReceivedObject.Order.OrderSide, "Order Side"); Assert.AreEqual(execution.Fill.Security.Symbol, executionReceivedObject.Fill.Security.Symbol, "Fill Symbol"); Assert.AreEqual(execution.Fill.OrderExecutionProvider, executionReceivedObject.Fill.OrderExecutionProvider, "Fill Execution Provider"); Assert.AreEqual(execution.Fill.ExecutionId, executionReceivedObject.Fill.ExecutionId, "Execution ID"); Assert.AreEqual(execution.Fill.OrderId, executionReceivedObject.Fill.OrderId, "Order ID in Fill"); Assert.AreEqual(execution.Fill.ExecutionSide, executionReceivedObject.Fill.ExecutionSide, "Execution Side"); Assert.AreEqual(execution.Fill.ExecutionSize, executionReceivedObject.Fill.ExecutionSize, "Execution Size"); }