@Test
  public void testIncrementalUpdate() {
    assertInitialState();

    // update active state
    registry.set(CollectionSettingNames.CS_QUERY_EXRTERNAL_RESOURCE_NAME, Boolean.TRUE);

    boolean active = generator.isGeneratingExternalResources();
    assertTrue("Active state should be true after update", active);

    // add application to ignore list
    ApplicationName appName = ApplicationName.valueOf("test-app");
    registry.set(
        CollectionSettingNames.createApplicationCollectionSettingName(appName), Boolean.FALSE);

    Collection<ApplicationName> apps = generator.getDisabledApplicationNames();
    assertEquals("Total disabled apps", 1, apps.size());
    assertTrue(appName + "is known when disabled", generator.isApplicationNameKnown(appName));

    ApplicationName disabledAppName = ListUtil.getFirstMember(apps);
    assertEquals("The only disabled app", appName, disabledAppName);

    // removed application from ignore list
    registry.set(
        CollectionSettingNames.createApplicationCollectionSettingName(appName), Boolean.TRUE);

    apps = generator.getDisabledApplicationNames();
    assertTrue("Total disabled apps is empty", apps.isEmpty());
    assertTrue(appName + "is known when enabled", generator.isApplicationNameKnown(appName));
  }
  private void assertInitialState() {
    boolean active = generator.isGeneratingExternalResources();
    Collection<ApplicationName> apps = generator.getDisabledApplicationNames();

    assertFalse("Generating queries external resources should be disabled by default", active);

    assertNotNull("Disabled apps collection", apps);
    assertTrue("Disabled apps should be empty by default", apps.isEmpty());
  }