public void FailoverTransportSendOnewayMessageTest()
{
int numMessages = 1000;
Uri uri = new Uri("failover:(mock://localhost:61616)?transport.randomize=false");
FailoverTransportFactory factory = new FailoverTransportFactory();
using(ITransport transport = factory.CreateTransport(uri))
{
Assert.IsNotNull(transport);
transport.Command = OnCommand;
transport.Exception = OnException;
FailoverTransport failover = transport.Narrow(typeof(FailoverTransport)) as FailoverTransport;
Assert.IsNotNull(failover);
Assert.IsFalse(failover.Randomize);
failover.Resumed = OnResumed;
transport.Start();
Thread.Sleep(1000);
Assert.IsTrue(failover.IsConnected);
// Ensure the current mock transport has the correct outgoing command handler
MockTransport mock = transport.Narrow(typeof(MockTransport)) as MockTransport;
Assert.IsNotNull(mock);
Assert.AreEqual(61616, mock.RemoteAddress.Port);
VerifyCommandHandlerSetting(transport, mock);
mock.OutgoingCommand = OnOutgoingCommand;
ActiveMQMessage message = new ActiveMQMessage();
for(int i = 0; i < numMessages; ++i)
{
transport.Oneway(message);
}
Thread.Sleep(1000);
Assert.AreEqual(numMessages, this.sent.Count);
}
}