public void shouldUpdateField()

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();
    }
  }