Refactor tests, move changelog tests

This commit is contained in:
Rob Bygrave
2022-03-25 18:44:24 +13:00
parent 88acd8190a
commit 88005dbe09
20 changed files with 1476 additions and 37 deletions
@@ -1,38 +0,0 @@
package io.ebeaninternal.server.changelog;
import io.ebean.xtest.BaseTestCase;
import io.ebean.event.changelog.BeanChange;
import io.ebean.event.changelog.ChangeSet;
import org.junit.jupiter.api.Test;
import java.io.StringWriter;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class ChangeJsonBuilderTest extends BaseTestCase {
Helper helper = new Helper();
@Test
public void testToJson() throws Exception {
ChangeJsonBuilder builder = new ChangeJsonBuilder();
ChangeSet changeSet = helper.createChangeSet("ABCD", 10);
changeSet.getUserContext().put("altUser", "role user");
List<BeanChange> changes = changeSet.getChanges();
for (int i = 0; i < changes.size(); i++) {
StringWriter buffer = new StringWriter();
builder.writeBeanJson(buffer, changes.get(i), changeSet);
assertThat(buffer.toString()).contains("\"source\"");
assertThat(buffer.toString()).contains("\"userId\"");
assertThat(buffer.toString()).contains("\"userIpAddress\"");
assertThat(buffer.toString()).contains("\"userContext\"");
}
}
}
@@ -1,26 +0,0 @@
package io.ebeaninternal.server.changelog;
import io.ebean.xtest.BaseTestCase;
import io.ebean.DB;
import io.ebean.Database;
import io.ebean.event.changelog.ChangeSet;
import org.junit.jupiter.api.Test;
public class DefaultChangeLogListenerTest extends BaseTestCase {
Helper helper = new Helper();
@Test
public void test() {
DefaultChangeLogListener changeLogListener = new DefaultChangeLogListener();
Database defaultServer = DB.getDefault();
changeLogListener.configure(defaultServer.pluginApi());
ChangeSet changeSet = helper.createChangeSet("INT-001", 13);
changeLogListener.log(changeSet);
}
}
@@ -1,74 +0,0 @@
package io.ebeaninternal.server.changelog;
import io.ebean.xtest.BaseTestCase;
import io.ebean.event.changelog.ChangeLogFilter;
import org.junit.jupiter.api.Test;
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 static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
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);
}
}
@@ -1,70 +0,0 @@
package io.ebeaninternal.server.changelog;
import io.ebean.event.changelog.BeanChange;
import io.ebean.event.changelog.ChangeSet;
import io.ebean.event.changelog.ChangeType;
import io.ebean.event.changelog.TxnState;
import java.sql.Timestamp;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class Helper {
public ChangeSet createChangeSet(String txnId, long startId) {
ChangeSet cs = new ChangeSet();
cs.setTxnId(txnId);
cs.setTxnState(TxnState.COMMITTED);
cs.setTxnBatch(0);
cs.setSource("myApp");
cs.setUserId("user234");
cs.setUserIpAddress("123.4.5.6");
cs.getUserContext().put("someKey", "user defined input");
List<BeanChange> changes = cs.getChanges();
changes.add(createInsert(startId));
changes.add(createUpdate(startId));
changes.add(createDelete(startId));
return cs;
}
private BeanChange createInsert(long startId) {
Map<String, Object> values = new LinkedHashMap<>();
values.put("name", "rob");
values.put("modified", new Timestamp(System.currentTimeMillis()));
Map<String, Object> oldValues = new LinkedHashMap<>();
oldValues.put("name", "rob");
oldValues.put("modified", new Timestamp(System.currentTimeMillis() - 100000));
return new BeanChange("mytable", null, startId + 1, ChangeType.INSERT, "");//values, oldValues);
}
private BeanChange createUpdate(long startId) {
Map<String, Object> values = new LinkedHashMap<>();
values.put("name", "jim");
values.put("nowHasVal", "wasNull");
values.put("nowNull", null);
values.put("modified", new Timestamp(System.currentTimeMillis()));
Map<String, Object> oldValues = new LinkedHashMap<>();
oldValues.put("name", "steve");
oldValues.put("nowHasVal", null);
oldValues.put("nowNull", "hadVal");
oldValues.put("modified", new Timestamp(System.currentTimeMillis() - 100000));
return new BeanChange("mytable", null, startId + 2, ChangeType.UPDATE, "");//values, oldValues);
}
private BeanChange createDelete(long startId) {
return new BeanChange("mytable", null, startId + 3, ChangeType.DELETE, null);
}
}