in component-test/src/main/java/org/apache/fineract/cn/customer/catalog/TestCatalog.java [312:352]
public void shouldUpdateField() throws Exception {
final Catalog catalog = CatalogGenerator.createRandomCatalog();
this.catalogManager.createCatalog(catalog);
this.eventRecorder.wait(CatalogEventConstants.POST_CATALOG, catalog.getIdentifier());
final Optional<Field> optionalField = catalog.getFields()
.stream()
.filter(field -> field.getDataType().equals(Field.DataType.SINGLE_SELECTION.name()))
.findFirst();
optionalField.ifPresent(field -> {
final Option option = new Option();
option.setLabel("new-option");
option.setValue(2);
field.setOptions(Lists.newArrayList(option));
this.catalogManager.updateField(catalog.getIdentifier(), field.getIdentifier(), field);
try {
Assert.assertTrue(this.eventRecorder.wait(CatalogEventConstants.PUT_FIELD, field.getIdentifier()));
} catch (final InterruptedException iex) {
Assert.fail(iex.getMessage());
}
});
final Catalog savedCatalog = this.catalogManager.findCatalog(catalog.getIdentifier());
final Optional<Field> optionalFetchedField = savedCatalog.getFields()
.stream()
.filter(field -> field.getDataType().equals(Field.DataType.SINGLE_SELECTION.name()))
.findFirst();
if (optionalFetchedField.isPresent()) {
final Field field = optionalFetchedField.get();
Assert.assertEquals(1, field.getOptions().size());
final Optional<Option> optionalOption = field.getOptions().stream().findFirst();
Assert.assertTrue(optionalOption.isPresent());
final Option option = optionalOption.get();
Assert.assertEquals(Integer.valueOf(2), option.getValue());
} else {
Assert.fail();
}
}