use of com.adaptris.core.fs.enhanced.AlphabeticAscending in project interlok by adaptris.
the class FsMessageConsumerTest method testConsumeWithAlphabeticSort.
@Test
public void testConsumeWithAlphabeticSort() throws Exception {
String subDir = new GuidGenerator().safeUUID();
MockMessageListener stub = new MockMessageListener(10);
FsConsumer fs = createConsumer(subDir);
fs.setFileSorter(new AlphabeticAscending());
fs.setReacquireLockBetweenMessages(true);
fs.setPoller(new FixedIntervalPoller(new TimeInterval(300L, TimeUnit.MILLISECONDS)));
StandaloneConsumer sc = new StandaloneConsumer(fs);
sc.registerAdaptrisMessageListener(stub);
int count = 10;
File parentDir = FsHelper.createFileReference(FsHelper.createUrlFromString(PROPERTIES.getProperty(BASE_KEY), true));
try {
File baseDir = new File(parentDir, subDir);
LifecycleHelper.init(sc);
createFiles(baseDir, ".xml", count);
LifecycleHelper.start(sc);
waitForMessages(stub, count);
assertMessages(stub.getMessages(), count, baseDir.listFiles((FilenameFilter) new Perl5FilenameFilter(".*\\.xml")));
AdaptrisMessage first = stub.getMessages().get(0);
AdaptrisMessage last = stub.getMessages().get(9);
String firstFilename = first.getMetadataValue(CoreConstants.ORIGINAL_NAME_KEY);
String lastFilename = last.getMetadataValue(CoreConstants.ORIGINAL_NAME_KEY);
assertTrue(firstFilename.compareTo(lastFilename) < 0);
} finally {
stop(sc);
FileUtils.deleteQuietly(new File(parentDir, subDir));
}
}
Aggregations