// toEpr for files must be a directory
FileEpr toEpr = new FileEpr(_tmpDir.toURI());
toEpr.setInputSuffix(TEST_SUFFIX);
Message msg = MessageFactory.getInstance().getMessage();
msg.getBody().add(contents.getBytes());
Call call = new Call(toEpr);
String uid = UUID.randomUUID().toString();
call.setMessageID(new URI(uid));
msg.getHeader().setCall(call);
CourierUtil.deliverMessage(msg);
String timeSent = (String) msg.getProperties().getProperty(Environment.MESSAGE_ENTRY_TIME);
String source = (String) msg.getProperties().getProperty(Environment.MESSAGE_SOURCE);
File theFile = new File(_tmpDir,uid+TEST_SUFFIX);
Assert.assertTrue(theFile.exists());
_logger.info("Message file "+theFile.toString()+" successfully created");
FileEpr fromEpr = new FileEpr(toEpr.getURI());
fromEpr.setInputSuffix(TEST_SUFFIX);
fromEpr.setPostSuffix(DONE_SUFFIX);
TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
Message retrieved = pickUp.pickup(1000);
Assert.assertFalse("Null message retrieved",null==retrieved);
String back = new String((byte[]) retrieved.getBody().get());
Assert.assertEquals(contents,back);
_logger.info("Contents of retrieved msg equal original text <"+back+">");
theFile = new File(_tmpDir,uid+TEST_SUFFIX+DONE_SUFFIX);
Assert.assertTrue(theFile.exists());
_logger.info("Retrieved message properly renamed to <"+theFile.toString()+">");
Assert.assertEquals(timeSent, retrieved.getProperties().getProperty(Environment.MESSAGE_ENTRY_TIME));
Assert.assertEquals(source, retrieved.getProperties().getProperty(Environment.MESSAGE_SOURCE));
Assert.assertNotNull(retrieved.getProperties().getProperty(Environment.MESSAGE_EXIT_TIME));
purgeStaleFiles();
}