@Test
  public void test_inheritance() {

    DefaultChangeLogRegister register = new DefaultChangeLogRegister(true);
    ChangeLogFilter changeFilter = register.getChangeFilter(ProductConfiguration.class);
    assertNotNull(changeFilter);
    DefaultChangeLogRegister.BasicFilter basicFilter =
        (DefaultChangeLogRegister.BasicFilter) changeFilter;
    assertTrue(basicFilter.includeInserts);
  }
  @Test
  public void test_defaultInsertFalse() {

    DefaultChangeLogRegister register = new DefaultChangeLogRegister(false);

    assertNull(register.getChangeFilter(Address.class));

    ChangeLogFilter changeFilter = register.getChangeFilter(Customer.class);
    DefaultChangeLogRegister.UpdateFilter updateFilter =
        (DefaultChangeLogRegister.UpdateFilter) changeFilter;
    assertFalse(updateFilter.includeInserts);
    assertThat(updateFilter.updateProperties).containsExactly("name", "status");

    changeFilter = register.getChangeFilter(Country.class);
    DefaultChangeLogRegister.BasicFilter countryFilter =
        (DefaultChangeLogRegister.BasicFilter) changeFilter;
    assertTrue(countryFilter.includeInserts);

    // use default setting
    changeFilter = register.getChangeFilter(Contact.class);
    DefaultChangeLogRegister.BasicFilter contactFilter =
        (DefaultChangeLogRegister.BasicFilter) changeFilter;
    assertFalse(contactFilter.includeInserts);
  }