public void TestSendOrder() { var nmsClient = new NmsClientApp("TestClient"); nmsClient.Configure(BrokerUrl, FerCommandQueue); nmsClient.Start(); WaitFor(Connected, nmsClient, 10000); Assert.IsTrue(nmsClient.Connected(), "Failed to connect"); var order = CreateLimitOrder(); var messageID = nmsClient.SendOrder(order); Assert.IsNotNull(messageID, "Failed to send order"); Console.WriteLine("Sent message:" + messageID); // simulate the server processing ProcessTestOrder(); WaitFor(Response, nmsClient, 3000); Assert.GreaterOrEqual(nmsClient.OrderCacheCount, 1, "Failed to receive response"); var response = nmsClient.GetResponseFor(messageID); Assert.IsNotNull(response, "Did not receive response for order " + messageID); var sentOrder = nmsClient.GetOrderByKey(order.CacheKey); Assert.IsNotNull(sentOrder, "Failed to lookup order by clientOrderID"); Assert.AreNotSame("NEW", sentOrder.Status, "Status not updated to non NEW"); nmsClient.Stop(); Assert.IsFalse(nmsClient.Connected(), "Failed to disconnect"); }
public void TestSendOrderIntegration() { var nmsClient = new NmsClientApp("TestClient"); nmsClient.Configure(BrokerUrl, FerCommandQueue); nmsClient.Start(); WaitFor(Connected, nmsClient, 10000); Assert.IsTrue(nmsClient.Connected(), "Failed to connect"); var order = CreateLimitOrder(); // Since this is an integration test, change platform to 'TEST' order.platform = "TEST"; order.strategy = "TEST-EQUITY-STRATEGY"; Console.WriteLine("Created order " + order.CacheKey); var messageID = nmsClient.SendOrder(order); Assert.IsNotNull(messageID, "Failed to send order"); Console.WriteLine("Sent message:" + messageID); WaitFor(Response, nmsClient, 3000); Assert.GreaterOrEqual(nmsClient.OrderCacheCount, 1, "Failed to receive response"); Thread.Sleep(1000); var response = nmsClient.GetResponseFor(messageID); Assert.IsNotNull(response, "Did not receive response for order " + messageID); Assert.IsFalse(response.ContainsKey("ERROR_1"), "Error with order:" + GetValueForKey("ERROR_1", response)); nmsClient.Stop(); Assert.IsFalse(nmsClient.Connected(), "Failed to disconnect"); }
public void TestStartStop() { var nmsClient = new NmsClientApp("TestClient"); nmsClient.Configure(BrokerUrl, FerCommandQueue); nmsClient.Start(); WaitFor(Connected, nmsClient, 10000); Assert.IsTrue(nmsClient.Connected(), "Failed to connect"); nmsClient.Stop(); Assert.IsFalse(nmsClient.Connected(), "Failed to disconnect"); }
public void TestSessionReconnect() { var nmsClient = new NmsClientApp("TestClient"); nmsClient.Configure(BrokerUrl, FerCommandQueue); nmsClient.Start(); WaitFor(Connected, nmsClient, 1000); Assert.IsTrue(nmsClient.Connected(), "Failed to connect"); Console.WriteLine("Kill the broker NOW!"); // sleep for a minute so we have time to kill the broker Thread.Sleep(60000); Console.WriteLine("Going to reconnect, the broker better be up!"); WaitFor(Connected, nmsClient, 1000); Assert.IsTrue(nmsClient.Connected(), "Failed to connect"); }
public static NmsClientApp GetClientFor(string brokerUrl) { lock (instance) { if (nmsClients.ContainsKey(brokerUrl)) { var client = nmsClients[brokerUrl]; // ensure that we are started client.Start(); return(client); } var newClient = new NmsClientApp(brokerUrl); // The queues should not change... newClient.Configure(brokerUrl, "FER.Command"); nmsClients[brokerUrl] = newClient; newClient.Start(); return(newClient); } }