*/
@Test
public void redeliverOneUnreachable() throws Exception
{
log.info("** redeliverOneUnreachable");
RedeliverStore store = MessageStoreFactory.getInstance().getRedeliverStore();
assertEquals((store != null), true);
//first lets create an undeliverable message
Service service = new Service("cat", "unreachable_service");
URI uid = createMessages(1, service, store);
int maxRedeliveryCount = store.getMaxRedeliverCount();
for (int i=0; i<maxRedeliveryCount; i++) {
store.redeliver(uid);
Message message = store.getMessage(uid);
//the message should have a redeliveryCount of i+1
assertNotNull(message);
Integer deliverCount = (Integer) message.getProperties().getProperty(RedeliverStore.DELIVER_COUNT);
assertEquals(deliverCount, i+1);
}
//Now redelivering one more time should put it in the DLQ
store.redeliver(uid);
Message message = store.getMessage(uid, MessageStore.CLASSIFICATION_DLQ);
assertNotNull(message);
message = store.getMessage(uid, MessageStore.CLASSIFICATION_RDLVR);
assertNull(message);
}