public void FailoverTransportFailOnSendMessageTest()
{
Uri uri = new Uri("failover:(mock://localhost:61616?transport.failOnCreate=true)?" +
"transport.useExponentialBackOff=false&transport.maxReconnectAttempts=3&transport.initialReconnectDelay=100");
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.UseExponentialBackOff);
Assert.AreEqual(3, failover.MaxReconnectAttempts);
Assert.AreEqual(100, failover.InitialReconnectDelay);
transport.Start();
ActiveMQMessage message = new ActiveMQMessage();
Assert.Throws<IOException>(delegate() { transport.Oneway(message); }, "Oneway call should block and then throw.");
Assert.IsNotEmpty(this.exceptions);
Assert.IsFalse(failover.IsConnected);
}
}