/**
* Tests update events of the descriptor.
*/
@Test
public void descripionEvaluator() {
AbstractDescriptionEvaluator descriptionEvaluator = new AbstractDescriptionEvaluator() {
@Override
protected String evaluateDescription() {
return evaluatorDescription;
}
};
Descriptor d = DescriptorUtils.builder("Name")
.description("1")
.evaluator(descriptionEvaluator)
.getDescriptor();
evaluatorDescription = "2";
Assert.assertEquals("2", d.getDescription());
// Make sure evaluate is only called after call to updateDescription
evaluatorDescription = "3";
Assert.assertEquals("2", d.getDescription());
descriptionEvaluator.updateDescription();
Assert.assertEquals("3", d.getDescription());
// Check event
TestUpdateListener<Descriptor> testListener = JuEventUtils.newTestUpdateListener();
d.getUpdateNotifier().addListener(testListener);
evaluatorDescription = "4";
descriptionEvaluator.updateDescription();
Assert.assertEquals("4", d.getDescription());
testListener.assertOneCall();
}