public void TestMessageListener()
{
// Send messages
for(int i = 0; i < MESSAGE_COUNT; i++)
{
producer.Send(session.CreateTextMessage(MESSAGE_TEXT + i));
}
CommitTx();
consumer.Listener += new MessageListener(OnMessage);
// wait receive
WaitReceiveUnack();
Assert.AreEqual(unackMessages.Count, MESSAGE_COUNT);
// resend phase
WaitReceiveAck();
Assert.AreEqual(ackMessages.Count, MESSAGE_COUNT);
// should no longer re-receive
consumer.Listener -= new MessageListener(OnMessage);
Assert.IsNull(consumer.Receive(TimeSpan.FromMilliseconds(500)));
Reconnect();
}