package io.ebeaninternal.server.changelog; import io.ebean.BaseTestCase; import io.ebean.event.changelog.ChangeLogFilter; import org.tests.inheritance.model.ProductConfiguration; import org.tests.model.basic.Address; import org.tests.model.basic.Contact; import org.tests.model.basic.Country; import org.tests.model.basic.Customer; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.*; public class DefaultChangeLogRegisterTest extends BaseTestCase { @Test public void test_defaultInsertTrue() { DefaultChangeLogRegister register = new DefaultChangeLogRegister(true); 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; assertTrue(contactFilter.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); } @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); } }