@Test
public void testBasicClassifierCompositeItemProcessor() throws Exception {
ClassifierCompositeItemProcessor<String, String> processor = new ClassifierCompositeItemProcessor<>();
ItemProcessor<String, String> fooProcessor = new ItemProcessor<String, String>() {
@Override
public String process(String item) throws Exception {
return "foo: " + item;
}
};
ItemProcessor<String, String> defaultProcessor = new ItemProcessor<String, String>() {
@Override
public String process(String item) throws Exception {
return item;
}
};
Map<String, ItemProcessor<?, ? extends String>> routingConfiguration =
new HashMap<>();
routingConfiguration.put("foo", fooProcessor);
routingConfiguration.put("*", defaultProcessor);
processor.setClassifier(new PatternMatchingClassifier<>(routingConfiguration));
assertEquals("bar", processor.process("bar"));
assertEquals("foo: foo", processor.process("foo"));
assertEquals("baz", processor.process("baz"));
}