mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-13 06:42:57 +00:00
Update tests for DatabaseFactory.create() with shutdown
This commit is contained in:
1 parent
1d1cf76b5e
commit
8b9f760cb2
18 files changed
+214
-230
No files matched your search
@@ -1,7 +1,7 @@
|
|||||||
package io.ebean;
|
package io.ebean;
|
||||||
|
|
||||||
import io.ebean.config.CurrentTenantProvider;
|
import io.ebean.config.CurrentTenantProvider;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import io.ebean.config.TenantCatalogProvider;
|
import io.ebean.config.TenantCatalogProvider;
|
||||||
import io.ebean.config.TenantDataSourceProvider;
|
import io.ebean.config.TenantDataSourceProvider;
|
||||||
import io.ebean.config.TenantMode;
|
import io.ebean.config.TenantMode;
|
||||||
@@ -29,7 +29,7 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
|
|||||||
TenantDataSourceProvider dataSourceProvider = Mockito.mock(TenantDataSourceProvider.class);
|
TenantDataSourceProvider dataSourceProvider = Mockito.mock(TenantDataSourceProvider.class);
|
||||||
Mockito.doReturn(mockedDataSource).when(dataSourceProvider).dataSource(tenant);
|
Mockito.doReturn(mockedDataSource).when(dataSourceProvider).dataSource(tenant);
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("multiTenantDb");
|
config.setName("multiTenantDb");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
@@ -45,7 +45,8 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
|
|||||||
//config.setDdlRun(false);
|
//config.setDdlRun(false);
|
||||||
config.setDatabasePlatform(new PostgresPlatform());
|
config.setDatabasePlatform(new PostgresPlatform());
|
||||||
|
|
||||||
EbeanServerFactory.create(config);
|
final Database database = DatabaseFactory.create(config);
|
||||||
|
database.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -63,9 +64,10 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
|
|||||||
TenantSchemaProvider schemaProvider = Mockito.mock(TenantSchemaProvider.class);
|
TenantSchemaProvider schemaProvider = Mockito.mock(TenantSchemaProvider.class);
|
||||||
Mockito.doReturn("tenant_schema").when(schemaProvider).schema(tenant);
|
Mockito.doReturn("tenant_schema").when(schemaProvider).schema(tenant);
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("h2");
|
config.setName("h2");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
|
config.setName("multi-tenancy");
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
config.setDefaultServer(false);
|
config.setDefaultServer(false);
|
||||||
|
|
||||||
@@ -76,7 +78,8 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
|
|||||||
config.setDdlRun(false);
|
config.setDdlRun(false);
|
||||||
config.setDatabasePlatform(new MySqlPlatform());
|
config.setDatabasePlatform(new MySqlPlatform());
|
||||||
|
|
||||||
EbeanServerFactory.create(config);
|
final Database database = DatabaseFactory.create(config);
|
||||||
|
database.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -92,9 +95,10 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
|
|||||||
TenantCatalogProvider catalogProvider = Mockito.mock(TenantCatalogProvider.class);
|
TenantCatalogProvider catalogProvider = Mockito.mock(TenantCatalogProvider.class);
|
||||||
Mockito.doReturn("tenant_catalog").when(catalogProvider).catalog(tenant);
|
Mockito.doReturn("tenant_catalog").when(catalogProvider).catalog(tenant);
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("h2");
|
config.setName("h2");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
|
config.setName("multi-tenancy");
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
config.setDefaultServer(false);
|
config.setDefaultServer(false);
|
||||||
|
|
||||||
@@ -105,6 +109,7 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
|
|||||||
config.setDdlRun(false);
|
config.setDdlRun(false);
|
||||||
config.setDatabasePlatform(new MySqlPlatform());
|
config.setDatabasePlatform(new MySqlPlatform());
|
||||||
|
|
||||||
EbeanServerFactory.create(config);
|
final Database database = DatabaseFactory.create(config);
|
||||||
|
database.shutdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package io.ebean.config;
|
package io.ebean.config;
|
||||||
|
|
||||||
|
|
||||||
import io.ebean.EbeanServer;
|
import io.ebean.Database;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.annotation.ForPlatform;
|
import io.ebean.annotation.ForPlatform;
|
||||||
import io.ebean.annotation.Platform;
|
import io.ebean.annotation.Platform;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
@@ -26,7 +26,7 @@ public class ServerConfigSqlServerTest {
|
|||||||
// no explicit databasePlatformName set ..
|
// no explicit databasePlatformName set ..
|
||||||
//props.setProperty("ebean.some_sqlserver.databasePlatformName", "sqlserver17");
|
//props.setProperty("ebean.some_sqlserver.databasePlatformName", "sqlserver17");
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("some_sqlserver");
|
config.setName("some_sqlserver");
|
||||||
config.loadFromProperties(props);
|
config.loadFromProperties(props);
|
||||||
|
|
||||||
@@ -38,9 +38,10 @@ public class ServerConfigSqlServerTest {
|
|||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
config.getClasses().add(EBasicVer.class);
|
config.getClasses().add(EBasicVer.class);
|
||||||
|
|
||||||
EbeanServer sqlServer = EbeanServerFactory.create(config);
|
Database sqlServer = DatabaseFactory.create(config);
|
||||||
|
|
||||||
assertThat(sqlServer).isNotNull();
|
assertThat(sqlServer).isNotNull();
|
||||||
|
sqlServer.shutdown();
|
||||||
|
|
||||||
// javax.persistence.PersistenceException: java.lang.IllegalArgumentException: For SqlServer please choose the more specific sqlserver16 or sqlserver17 platform via ServerConfig.setDatabasePlatformName. Refer to issue #1340 for details
|
// javax.persistence.PersistenceException: java.lang.IllegalArgumentException: For SqlServer please choose the more specific sqlserver16 or sqlserver17 platform via ServerConfig.setDatabasePlatformName. Refer to issue #1340 for details
|
||||||
//
|
//
|
||||||
@@ -61,7 +62,7 @@ public class ServerConfigSqlServerTest {
|
|||||||
|
|
||||||
String name = "testsqlserver17";
|
String name = "testsqlserver17";
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName(name);
|
config.setName(name);
|
||||||
|
|
||||||
Properties props = props(name);
|
Properties props = props(name);
|
||||||
@@ -79,9 +80,10 @@ public class ServerConfigSqlServerTest {
|
|||||||
config.loadFromProperties(props);
|
config.loadFromProperties(props);
|
||||||
config.getClasses().add(EBasicVer.class);
|
config.getClasses().add(EBasicVer.class);
|
||||||
|
|
||||||
EbeanServer sqlServer = EbeanServerFactory.create(config);
|
Database sqlServer = DatabaseFactory.create(config);
|
||||||
|
|
||||||
assertThat(sqlServer).isNotNull();
|
assertThat(sqlServer).isNotNull();
|
||||||
|
sqlServer.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
@@ -93,7 +95,7 @@ public class ServerConfigSqlServerTest {
|
|||||||
Properties props = props(name);
|
Properties props = props(name);
|
||||||
//props.setProperty("ebean.testsqlserver16.databasePlatformName", "sqlserver16");
|
//props.setProperty("ebean.testsqlserver16.databasePlatformName", "sqlserver16");
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setDefaultServer(false);
|
config.setDefaultServer(false);
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
config.setDdlGenerate(true);
|
config.setDdlGenerate(true);
|
||||||
@@ -104,9 +106,10 @@ public class ServerConfigSqlServerTest {
|
|||||||
config.loadFromProperties(props);
|
config.loadFromProperties(props);
|
||||||
config.getClasses().add(EBasicVer.class);
|
config.getClasses().add(EBasicVer.class);
|
||||||
|
|
||||||
EbeanServer sqlServer = EbeanServerFactory.create(config);
|
Database sqlServer = DatabaseFactory.create(config);
|
||||||
|
|
||||||
assertThat(sqlServer).isNotNull();
|
assertThat(sqlServer).isNotNull();
|
||||||
|
sqlServer.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Properties props(String dbName) {
|
private Properties props(String dbName) {
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
public class BeanPersistControllerTest {
|
public class BeanPersistControllerTest {
|
||||||
|
|
||||||
private PersistAdapter continuePersistingAdapter = new PersistAdapter(true);
|
private final PersistAdapter continuePersistingAdapter = new PersistAdapter(true);
|
||||||
|
|
||||||
private PersistAdapter stopPersistingAdapter = new PersistAdapter(false);
|
private final PersistAdapter stopPersistingAdapter = new PersistAdapter(false);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void issue_1341() {
|
public void issue_1341() {
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package io.ebean.event;
|
|||||||
|
|
||||||
import io.ebean.BaseTestCase;
|
import io.ebean.BaseTestCase;
|
||||||
import io.ebean.BeanState;
|
import io.ebean.BeanState;
|
||||||
|
import io.ebean.DB;
|
||||||
import io.ebean.Database;
|
import io.ebean.Database;
|
||||||
import io.ebean.DatabaseFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.Ebean;
|
|
||||||
import io.ebean.config.DatabaseConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import org.tests.model.basic.EBasicVer;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.tests.model.basic.EBasicVer;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -91,7 +91,7 @@ public class BeanPostLoadTest extends BaseTestCase {
|
|||||||
public void postLoad(Object bean) {
|
public void postLoad(Object bean) {
|
||||||
this.methodsCalled.add("postLoad");
|
this.methodsCalled.add("postLoad");
|
||||||
this.bean = bean;
|
this.bean = bean;
|
||||||
this.beanState = Ebean.getBeanState(bean);
|
this.beanState = DB.getBeanState(bean);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-4
@@ -26,10 +26,13 @@ public class BeanDescriptor_registerTest {
|
|||||||
config.getClasses().add(EBasic.class);
|
config.getClasses().add(EBasic.class);
|
||||||
|
|
||||||
SpiEbeanServer ebeanServer = (SpiEbeanServer)DatabaseFactory.create(config);
|
SpiEbeanServer ebeanServer = (SpiEbeanServer)DatabaseFactory.create(config);
|
||||||
BeanDescriptor<EBasic> desc = ebeanServer.getBeanDescriptor(EBasic.class);
|
try {
|
||||||
|
BeanDescriptor<EBasic> desc = ebeanServer.getBeanDescriptor(EBasic.class);
|
||||||
persistListenerRegistrationTests(desc);
|
persistListenerRegistrationTests(desc);
|
||||||
persistControllerRegistrationTests(desc);
|
persistControllerRegistrationTests(desc);
|
||||||
|
} finally {
|
||||||
|
ebeanServer.shutdown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void persistControllerRegistrationTests(BeanDescriptor<EBasic> desc) {
|
private void persistControllerRegistrationTests(BeanDescriptor<EBasic> desc) {
|
||||||
|
|||||||
+18
-16
@@ -105,29 +105,31 @@ public class DefaultTransactionThreadLocalTest extends BaseTestCase {
|
|||||||
@ForPlatform(Platform.H2)
|
@ForPlatform(Platform.H2)
|
||||||
@Test
|
@Test
|
||||||
public void usingDatabase() {
|
public void usingDatabase() {
|
||||||
|
|
||||||
// setup
|
// setup
|
||||||
Database otherDb = createOtherDatabase();
|
Database otherDb = createOtherDatabase();
|
||||||
EBasicVer bean = new EBasicVer("TestUsingDatabase");
|
try {
|
||||||
otherDb.save(bean);
|
EBasicVer bean = new EBasicVer("TestUsingDatabase");
|
||||||
|
otherDb.save(bean);
|
||||||
|
|
||||||
// act
|
// act
|
||||||
final EBasicVer foundOtherDb = DB.find(EBasicVer.class)
|
final EBasicVer foundOtherDb = DB.find(EBasicVer.class)
|
||||||
.usingDatabase(otherDb)
|
.usingDatabase(otherDb)
|
||||||
.where().eq("name", "TestUsingDatabase")
|
.where().eq("name", "TestUsingDatabase")
|
||||||
.findOne();
|
.findOne();
|
||||||
|
|
||||||
assertNotNull(foundOtherDb);
|
assertNotNull(foundOtherDb);
|
||||||
assertThat(foundOtherDb.getId()).isEqualTo(bean.getId());
|
assertThat(foundOtherDb.getId()).isEqualTo(bean.getId());
|
||||||
|
|
||||||
final EBasicVer foundDefaultDb = DB.find(EBasicVer.class)
|
final EBasicVer foundDefaultDb = DB.find(EBasicVer.class)
|
||||||
.where().eq("name", "TestUsingDatabase")
|
.where().eq("name", "TestUsingDatabase")
|
||||||
.findOne();
|
.findOne();
|
||||||
|
|
||||||
assertNull(foundDefaultDb);
|
assertNull(foundDefaultDb);
|
||||||
|
|
||||||
otherDb.delete(bean);
|
otherDb.delete(bean);
|
||||||
otherDb.shutdown();
|
} finally {
|
||||||
|
otherDb.shutdown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package org;
|
package org;
|
||||||
|
|
||||||
import io.ebean.EbeanServer;
|
import io.ebean.Database;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.Transaction;
|
import io.ebean.Transaction;
|
||||||
import io.ebean.annotation.Cache;
|
import io.ebean.annotation.Cache;
|
||||||
|
import io.ebean.config.DatabaseConfig;
|
||||||
import io.ebean.config.PlatformNoGeneratedKeysTest;
|
import io.ebean.config.PlatformNoGeneratedKeysTest;
|
||||||
import io.ebean.config.ServerConfig;
|
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
@@ -40,13 +40,13 @@ public class MainMemoryLeak {
|
|||||||
|
|
||||||
PlatformNoGeneratedKeysTest.OtherH2Platform platform = new PlatformNoGeneratedKeysTest.OtherH2Platform();
|
PlatformNoGeneratedKeysTest.OtherH2Platform platform = new PlatformNoGeneratedKeysTest.OtherH2Platform();
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
|
|
||||||
config.setDatabasePlatform(platform);
|
config.setDatabasePlatform(platform);
|
||||||
config.addClass(ECachedBean.class);
|
config.addClass(ECachedBean.class);
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
|
|
||||||
EbeanServer server = EbeanServerFactory.create(config);
|
Database server = DatabaseFactory.create(config);
|
||||||
|
|
||||||
// create a string with 10k chars
|
// create a string with 10k chars
|
||||||
char[] c = new char[10_000];
|
char[] c = new char[10_000];
|
||||||
@@ -70,6 +70,6 @@ public class MainMemoryLeak {
|
|||||||
System.out.println("Success, no mem limit detected");
|
System.out.println("Success, no mem limit detected");
|
||||||
txn.commit();
|
txn.commit();
|
||||||
}
|
}
|
||||||
|
server.shutdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
package org.multitenant.partition;
|
package org.multitenant.partition;
|
||||||
|
|
||||||
import io.ebean.BaseTestCase;
|
import io.ebean.BaseTestCase;
|
||||||
import io.ebean.EbeanServer;
|
import io.ebean.Database;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import io.ebean.config.TenantMode;
|
import io.ebean.config.TenantMode;
|
||||||
import org.ebeantest.LoggedSqlCollector;
|
import org.ebeantest.LoggedSqlCollector;
|
||||||
|
import org.junit.AfterClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -16,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
public class MultiTenantPartitionTest extends BaseTestCase {
|
public class MultiTenantPartitionTest extends BaseTestCase {
|
||||||
|
|
||||||
private static String[] names = {"Ace", "Base", "Case", "Dae", "Eva"};
|
private static final String[] names = {"Ace", "Base", "Case", "Dae", "Eva"};
|
||||||
|
|
||||||
static List<MtTenant> tenants() {
|
static List<MtTenant> tenants() {
|
||||||
List<MtTenant> tenants = new ArrayList<>();
|
List<MtTenant> tenants = new ArrayList<>();
|
||||||
@@ -26,12 +27,16 @@ public class MultiTenantPartitionTest extends BaseTestCase {
|
|||||||
return tenants;
|
return tenants;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static EbeanServer server = init();
|
private static final Database server = init();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
server.saveAll(tenants());
|
server.saveAll(tenants());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void shutdown() {
|
||||||
|
server.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void start() {
|
public void start() {
|
||||||
|
|
||||||
@@ -103,9 +108,9 @@ public class MultiTenantPartitionTest extends BaseTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static EbeanServer init() {
|
private static Database init() {
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
|
|
||||||
config.setName("h2multitenant");
|
config.setName("h2multitenant");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
@@ -120,6 +125,6 @@ public class MultiTenantPartitionTest extends BaseTestCase {
|
|||||||
config.getClasses().add(MtTenant.class);
|
config.getClasses().add(MtTenant.class);
|
||||||
config.getClasses().add(MtContent.class);
|
config.getClasses().add(MtContent.class);
|
||||||
|
|
||||||
return EbeanServerFactory.create(config);
|
return DatabaseFactory.create(config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,9 +3,10 @@ package org.tests.changelog;
|
|||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.ebean.BaseTestCase;
|
import io.ebean.BaseTestCase;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.Database;
|
||||||
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.annotation.ChangeLog;
|
import io.ebean.annotation.ChangeLog;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import io.ebean.event.BeanPersistRequest;
|
import io.ebean.event.BeanPersistRequest;
|
||||||
import io.ebean.event.changelog.BeanChange;
|
import io.ebean.event.changelog.BeanChange;
|
||||||
import io.ebean.event.changelog.ChangeLogFilter;
|
import io.ebean.event.changelog.ChangeLogFilter;
|
||||||
@@ -14,7 +15,6 @@ import io.ebean.event.changelog.ChangeLogPrepare;
|
|||||||
import io.ebean.event.changelog.ChangeLogRegister;
|
import io.ebean.event.changelog.ChangeLogRegister;
|
||||||
import io.ebean.event.changelog.ChangeSet;
|
import io.ebean.event.changelog.ChangeSet;
|
||||||
import io.ebean.event.changelog.ChangeType;
|
import io.ebean.event.changelog.ChangeType;
|
||||||
import io.ebeaninternal.api.SpiEbeanServer;
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -31,16 +31,16 @@ public class TestChangeLog extends BaseTestCase {
|
|||||||
|
|
||||||
TDChangeLogRegister changeLogRegister = new TDChangeLogRegister();
|
TDChangeLogRegister changeLogRegister = new TDChangeLogRegister();
|
||||||
|
|
||||||
SpiEbeanServer server;
|
Database server;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
server = getServer();
|
server = createServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void shutdown() {
|
public void shutdown() {
|
||||||
server.shutdown(true, false);
|
server.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -65,7 +65,7 @@ public class TestChangeLog extends BaseTestCase {
|
|||||||
|
|
||||||
assertThat(change.getEvent()).isEqualTo(ChangeType.UPDATE);
|
assertThat(change.getEvent()).isEqualTo(ChangeType.UPDATE);
|
||||||
assertThat(change.getOldData()).contains("\"name\":\"logBean\"");
|
assertThat(change.getOldData()).contains("\"name\":\"logBean\"");
|
||||||
assertThat(change.getData()) .contains("\"name\":\"ChangedName\"");
|
assertThat(change.getData()).contains("\"name\":\"ChangedName\"");
|
||||||
|
|
||||||
|
|
||||||
server.delete(bean);
|
server.delete(bean);
|
||||||
@@ -120,31 +120,27 @@ public class TestChangeLog extends BaseTestCase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Database createServer() {
|
||||||
|
|
||||||
private SpiEbeanServer getServer() {
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
|
||||||
config.setName("h2other");
|
config.setName("h2other");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
|
|
||||||
config.setDdlGenerate(true);
|
config.setDdlGenerate(true);
|
||||||
config.setDdlRun(true);
|
config.setDdlRun(true);
|
||||||
config.setDdlExtra(false);
|
config.setDdlExtra(false);
|
||||||
|
|
||||||
config.setDefaultServer(false);
|
config.setDefaultServer(false);
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
config.setChangeLogAsync(false);
|
config.setChangeLogAsync(false);
|
||||||
|
|
||||||
config.addClass(EBasicChangeLog.class);
|
config.addClass(EBasicChangeLog.class);
|
||||||
|
|
||||||
config.setChangeLogPrepare(changeLogPrepare);
|
config.setChangeLogPrepare(changeLogPrepare);
|
||||||
config.setChangeLogListener(changeLogListener);
|
config.setChangeLogListener(changeLogListener);
|
||||||
config.setChangeLogRegister(changeLogRegister);
|
config.setChangeLogRegister(changeLogRegister);
|
||||||
|
|
||||||
return (SpiEbeanServer) EbeanServerFactory.create(config);
|
return DatabaseFactory.create(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
class TDChangeLogPrepare implements ChangeLogPrepare {
|
public static class TDChangeLogPrepare implements ChangeLogPrepare {
|
||||||
@Override
|
@Override
|
||||||
public boolean prepare(ChangeSet changes) {
|
public boolean prepare(ChangeSet changes) {
|
||||||
changes.setUserId("appUser1");
|
changes.setUserId("appUser1");
|
||||||
@@ -153,14 +149,12 @@ public class TestChangeLog extends BaseTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TDChangeLogListener implements ChangeLogListener {
|
public static class TDChangeLogListener implements ChangeLogListener {
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
ChangeSet changes;
|
ChangeSet changes;
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public TDChangeLogListener() {
|
public TDChangeLogListener() {
|
||||||
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||||
}
|
}
|
||||||
@@ -184,7 +178,7 @@ public class TestChangeLog extends BaseTestCase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class TDChangeLogRegister implements ChangeLogRegister {
|
public static class TDChangeLogRegister implements ChangeLogRegister {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChangeLogFilter getChangeFilter(Class<?> beanType) {
|
public ChangeLogFilter getChangeFilter(Class<?> beanType) {
|
||||||
@@ -198,11 +192,10 @@ public class TestChangeLog extends BaseTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change log filter that includes all the inserts, updates and deletes.
|
* Change log filter that includes all the inserts, updates and deletes.
|
||||||
*/
|
*/
|
||||||
class TDFilter implements ChangeLogFilter {
|
public static class TDFilter implements ChangeLogFilter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true including all the inserts.
|
* Returns true including all the inserts.
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
package org.tests.ddl;
|
|
||||||
|
|
||||||
import io.ebean.EbeanServer;
|
|
||||||
import io.ebean.EbeanServerFactory;
|
|
||||||
import io.ebean.config.ServerConfig;
|
|
||||||
import org.tests.model.basic.EBasic;
|
|
||||||
|
|
||||||
public class MainDdlWithSchema {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
|
|
||||||
ServerConfig cfg = new ServerConfig();
|
|
||||||
cfg.setName("h2");
|
|
||||||
cfg.loadFromProperties();
|
|
||||||
cfg.addClass(EBasic.class);
|
|
||||||
|
|
||||||
// .... other settings ...
|
|
||||||
//UnderscoreNamingConvention naming = new UnderscoreNamingConvention();
|
|
||||||
//naming.setSchema("test");
|
|
||||||
//cfg.setNamingConvention(naming);
|
|
||||||
cfg.setDdlGenerate(true);
|
|
||||||
cfg.setDdlRun(true);
|
|
||||||
EbeanServer ebean = EbeanServerFactory.create(cfg);
|
|
||||||
//ebean.createSqlUpdate("create schema foo").execute();
|
|
||||||
System.out.println(ebean);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+14
-22
@@ -1,16 +1,16 @@
|
|||||||
package org.tests.persistencecontext;
|
package org.tests.persistencecontext;
|
||||||
|
|
||||||
import io.ebean.BaseTestCase;
|
import io.ebean.BaseTestCase;
|
||||||
import io.ebean.EbeanServer;
|
import io.ebean.Database;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.PersistenceContextScope;
|
import io.ebean.PersistenceContextScope;
|
||||||
import io.ebean.Query;
|
import io.ebean.Query;
|
||||||
import io.ebean.config.ContainerConfig;
|
import io.ebean.config.ContainerConfig;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import io.ebeaninternal.api.SpiEbeanServer;
|
import io.ebeaninternal.api.SpiEbeanServer;
|
||||||
import io.ebeaninternal.api.SpiQuery;
|
import io.ebeaninternal.api.SpiQuery;
|
||||||
import org.tests.model.basic.EBasicVer;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.tests.model.basic.EBasicVer;
|
||||||
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
@@ -20,20 +20,20 @@ public class TestPersistenceContextServerConfig extends BaseTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test_config() {
|
public void test_config() {
|
||||||
|
|
||||||
SpiEbeanServer ebeanServer = (SpiEbeanServer) create();
|
SpiEbeanServer ebeanServer = (SpiEbeanServer) create();
|
||||||
|
try {
|
||||||
|
Query<EBasicVer> query = ebeanServer.find(EBasicVer.class);
|
||||||
|
PersistenceContextScope scope = ebeanServer.getPersistenceContextScope((SpiQuery<?>) query);
|
||||||
|
|
||||||
Query<EBasicVer> query = ebeanServer.find(EBasicVer.class);
|
assertEquals(PersistenceContextScope.QUERY, scope);
|
||||||
|
} finally {
|
||||||
PersistenceContextScope scope = ebeanServer.getPersistenceContextScope((SpiQuery<?>) query);
|
ebeanServer.shutdown();
|
||||||
|
}
|
||||||
assertEquals(PersistenceContextScope.QUERY, scope);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static EbeanServer create() {
|
static Database create() {
|
||||||
|
|
||||||
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
ServerConfig config = new ServerConfig();
|
|
||||||
config.setName("withPCQuery");
|
config.setName("withPCQuery");
|
||||||
config.setDdlExtra(false);
|
config.setDdlExtra(false);
|
||||||
|
|
||||||
@@ -49,15 +49,7 @@ public class TestPersistenceContextServerConfig extends BaseTestCase {
|
|||||||
config.setDefaultServer(false);
|
config.setDefaultServer(false);
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
|
|
||||||
// DataSourceConfig dataSourceConfig = new DataSourceConfig();
|
|
||||||
// dataSourceConfig.setUsername("sa");
|
|
||||||
// dataSourceConfig.setPassword("");
|
|
||||||
// dataSourceConfig.setUrl("jdbc:h2:mem:withPCQuery;");
|
|
||||||
// dataSourceConfig.setDriver("org.h2.Driver");
|
|
||||||
// config.setDataSourceConfig(dataSourceConfig);
|
|
||||||
|
|
||||||
config.addClass(EBasicVer.class);
|
config.addClass(EBasicVer.class);
|
||||||
|
return DatabaseFactory.create(config);
|
||||||
return EbeanServerFactory.create(config);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
package org.tests.readaudit;
|
package org.tests.readaudit;
|
||||||
|
|
||||||
import io.ebean.BaseTestCase;
|
import io.ebean.BaseTestCase;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.Database;
|
||||||
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.FutureList;
|
import io.ebean.FutureList;
|
||||||
import io.ebean.cache.ServerCache;
|
import io.ebean.cache.ServerCache;
|
||||||
import io.ebean.cache.ServerCacheStatistics;
|
import io.ebean.cache.ServerCacheStatistics;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import io.ebean.event.readaudit.ReadAuditLogger;
|
import io.ebean.event.readaudit.ReadAuditLogger;
|
||||||
import io.ebean.event.readaudit.ReadAuditPrepare;
|
import io.ebean.event.readaudit.ReadAuditPrepare;
|
||||||
import io.ebean.event.readaudit.ReadAuditQueryPlan;
|
import io.ebean.event.readaudit.ReadAuditQueryPlan;
|
||||||
import io.ebean.event.readaudit.ReadEvent;
|
import io.ebean.event.readaudit.ReadEvent;
|
||||||
import io.ebeaninternal.api.SpiEbeanServer;
|
|
||||||
import org.tests.model.basic.Country;
|
|
||||||
import org.tests.model.basic.EBasicChangeLog;
|
|
||||||
import org.ebeantest.LoggedSqlCollector;
|
import org.ebeantest.LoggedSqlCollector;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.tests.model.basic.Country;
|
||||||
|
import org.tests.model.basic.EBasicChangeLog;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -30,18 +30,18 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
public class TestReadAudit extends BaseTestCase {
|
public class TestReadAudit extends BaseTestCase {
|
||||||
|
|
||||||
TDReadAuditPrepare readAuditPrepare = new TDReadAuditPrepare(true);
|
TDReadAuditPrepare readAuditPrepare = new TDReadAuditPrepare();
|
||||||
|
|
||||||
TDReadAuditLogger readAuditLogger = new TDReadAuditLogger(true);
|
TDReadAuditLogger readAuditLogger = new TDReadAuditLogger();
|
||||||
|
|
||||||
SpiEbeanServer server;
|
Database server;
|
||||||
|
|
||||||
Long id1;
|
Long id1;
|
||||||
Long id2;
|
Long id2;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
server = getServer();
|
server = createServer();
|
||||||
|
|
||||||
EBasicChangeLog bean = new EBasicChangeLog();
|
EBasicChangeLog bean = new EBasicChangeLog();
|
||||||
bean.setName("readAudito1");
|
bean.setName("readAudito1");
|
||||||
@@ -63,7 +63,7 @@ public class TestReadAudit extends BaseTestCase {
|
|||||||
|
|
||||||
@After
|
@After
|
||||||
public void shutdown() {
|
public void shutdown() {
|
||||||
server.shutdown(true, false);
|
server.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -304,9 +304,9 @@ public class TestReadAudit extends BaseTestCase {
|
|||||||
assertThat(readAuditLogger.many).hasSize(2);
|
assertThat(readAuditLogger.many).hasSize(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SpiEbeanServer getServer() {
|
private Database createServer() {
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("h2other");
|
config.setName("h2other");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
|
|
||||||
@@ -323,7 +323,7 @@ public class TestReadAudit extends BaseTestCase {
|
|||||||
config.setReadAuditLogger(readAuditLogger);
|
config.setReadAuditLogger(readAuditLogger);
|
||||||
config.setReadAuditPrepare(readAuditPrepare);
|
config.setReadAuditPrepare(readAuditPrepare);
|
||||||
|
|
||||||
return (SpiEbeanServer) EbeanServerFactory.create(config);
|
return DatabaseFactory.create(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetCounters() {
|
private void resetCounters() {
|
||||||
@@ -331,13 +331,10 @@ public class TestReadAudit extends BaseTestCase {
|
|||||||
readAuditPrepare.resetCounters();
|
readAuditPrepare.resetCounters();
|
||||||
}
|
}
|
||||||
|
|
||||||
class TDReadAuditPrepare implements ReadAuditPrepare {
|
static class TDReadAuditPrepare implements ReadAuditPrepare {
|
||||||
|
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
TDReadAuditPrepare(boolean dummy) {
|
|
||||||
}
|
|
||||||
|
|
||||||
void resetCounters() {
|
void resetCounters() {
|
||||||
count = 0;
|
count = 0;
|
||||||
}
|
}
|
||||||
@@ -351,15 +348,12 @@ public class TestReadAudit extends BaseTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TDReadAuditLogger implements ReadAuditLogger {
|
static class TDReadAuditLogger implements ReadAuditLogger {
|
||||||
|
|
||||||
Set<ReadAuditQueryPlan> plans = new HashSet<>();
|
Set<ReadAuditQueryPlan> plans = new HashSet<>();
|
||||||
List<ReadEvent> beans = new ArrayList<>();
|
List<ReadEvent> beans = new ArrayList<>();
|
||||||
List<ReadEvent> many = new ArrayList<>();
|
List<ReadEvent> many = new ArrayList<>();
|
||||||
|
|
||||||
TDReadAuditLogger(boolean dummy) {
|
|
||||||
}
|
|
||||||
|
|
||||||
void resetCounters() {
|
void resetCounters() {
|
||||||
plans.clear();
|
plans.clear();
|
||||||
beans.clear();
|
beans.clear();
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ datasource.db.databaseDriver=org.h2.Driver
|
|||||||
|
|
||||||
datasource.h2.username=sa
|
datasource.h2.username=sa
|
||||||
datasource.h2.password=
|
datasource.h2.password=
|
||||||
datasource.h2.url=jdbc:h2:mem:tests
|
datasource.h2.url=jdbc:h2:mem:testsMem;DB_CLOSE_ON_EXIT=FALSE
|
||||||
#datasource.h2.driver=org.h2.Driver
|
#datasource.h2.driver=org.h2.Driver
|
||||||
datasource.h2.minConnections=1
|
datasource.h2.minConnections=1
|
||||||
datasource.h2.maxConnections=25
|
datasource.h2.maxConnections=25
|
||||||
|
|||||||
+8
-6
@@ -1,8 +1,8 @@
|
|||||||
package io.ebeaninternal.dbmigration;
|
package io.ebeaninternal.dbmigration;
|
||||||
|
|
||||||
import io.ebean.EbeanServer;
|
import io.ebean.Database;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -42,7 +42,7 @@ public class DbMigrationDropHistoryTest {
|
|||||||
|
|
||||||
migration.setPathToResources("src/test/resources");
|
migration.setPathToResources("src/test/resources");
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("migrationtest-history");
|
config.setName("migrationtest-history");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
@@ -50,7 +50,7 @@ public class DbMigrationDropHistoryTest {
|
|||||||
|
|
||||||
|
|
||||||
config.setPackages(Arrays.asList("misc.migration.history.v1_0"));
|
config.setPackages(Arrays.asList("misc.migration.history.v1_0"));
|
||||||
EbeanServer server = EbeanServerFactory.create(config);
|
Database server = DatabaseFactory.create(config);
|
||||||
migration.setServer(server);
|
migration.setServer(server);
|
||||||
|
|
||||||
// First, we clean up the output-directory
|
// First, we clean up the output-directory
|
||||||
@@ -65,7 +65,8 @@ public class DbMigrationDropHistoryTest {
|
|||||||
|
|
||||||
// and now for v1_1
|
// and now for v1_1
|
||||||
config.setPackages(Arrays.asList("misc.migration.history.v1_1"));
|
config.setPackages(Arrays.asList("misc.migration.history.v1_1"));
|
||||||
server = EbeanServerFactory.create(config);
|
server.shutdown();
|
||||||
|
server = DatabaseFactory.create(config);
|
||||||
migration.setServer(server);
|
migration.setServer(server);
|
||||||
assertThat(migration.generateMigration()).isEqualTo("1.1");
|
assertThat(migration.generateMigration()).isEqualTo("1.1");
|
||||||
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
||||||
@@ -82,6 +83,7 @@ public class DbMigrationDropHistoryTest {
|
|||||||
.hasMessageContaining("No 'pendingDrops'"); // subsequent call
|
.hasMessageContaining("No 'pendingDrops'"); // subsequent call
|
||||||
System.clearProperty("ddl.migration.pendingDropsFor");
|
System.clearProperty("ddl.migration.pendingDropsFor");
|
||||||
|
|
||||||
|
server.shutdown();
|
||||||
logger.info("end");
|
logger.info("end");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+11
-8
@@ -1,9 +1,9 @@
|
|||||||
package io.ebeaninternal.dbmigration;
|
package io.ebeaninternal.dbmigration;
|
||||||
|
|
||||||
import io.ebean.EbeanServer;
|
import io.ebean.Database;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.annotation.Platform;
|
import io.ebean.annotation.Platform;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -57,7 +57,7 @@ public class DbMigrationGenerateTest {
|
|||||||
migration.addPlatform(Platform.SQLSERVER17, "sqlserver17");
|
migration.addPlatform(Platform.SQLSERVER17, "sqlserver17");
|
||||||
migration.addPlatform(Platform.HANA, "hana");
|
migration.addPlatform(Platform.HANA, "hana");
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("migrationtest");
|
config.setName("migrationtest");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
config.setRegister(false);
|
config.setRegister(false);
|
||||||
@@ -66,7 +66,7 @@ public class DbMigrationGenerateTest {
|
|||||||
|
|
||||||
|
|
||||||
config.setPackages(Arrays.asList("misc.migration.v1_0"));
|
config.setPackages(Arrays.asList("misc.migration.v1_0"));
|
||||||
EbeanServer server = EbeanServerFactory.create(config);
|
Database server = DatabaseFactory.create(config);
|
||||||
migration.setServer(server);
|
migration.setServer(server);
|
||||||
|
|
||||||
// First, we clean up the output-directory
|
// First, we clean up the output-directory
|
||||||
@@ -81,7 +81,8 @@ public class DbMigrationGenerateTest {
|
|||||||
|
|
||||||
// and now for v1_1
|
// and now for v1_1
|
||||||
config.setPackages(Arrays.asList("misc.migration.v1_1"));
|
config.setPackages(Arrays.asList("misc.migration.v1_1"));
|
||||||
server = EbeanServerFactory.create(config);
|
server.shutdown();
|
||||||
|
server = DatabaseFactory.create(config);
|
||||||
migration.setServer(server);
|
migration.setServer(server);
|
||||||
assertThat(migration.generateMigration()).isEqualTo("1.1");
|
assertThat(migration.generateMigration()).isEqualTo("1.1");
|
||||||
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
||||||
@@ -100,7 +101,8 @@ public class DbMigrationGenerateTest {
|
|||||||
|
|
||||||
// and now for v1_2 with
|
// and now for v1_2 with
|
||||||
config.setPackages(Arrays.asList("misc.migration.v1_2"));
|
config.setPackages(Arrays.asList("misc.migration.v1_2"));
|
||||||
server = EbeanServerFactory.create(config);
|
server.shutdown();
|
||||||
|
server = DatabaseFactory.create(config);
|
||||||
migration.setServer(server);
|
migration.setServer(server);
|
||||||
assertThat(migration.generateMigration()).isEqualTo("1.3");
|
assertThat(migration.generateMigration()).isEqualTo("1.3");
|
||||||
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
||||||
@@ -108,13 +110,14 @@ public class DbMigrationGenerateTest {
|
|||||||
|
|
||||||
System.setProperty("ddl.migration.pendingDropsFor", "1.3");
|
System.setProperty("ddl.migration.pendingDropsFor", "1.3");
|
||||||
assertThat(migration.generateMigration()).isEqualTo("1.4__dropsFor_1.3");
|
assertThat(migration.generateMigration()).isEqualTo("1.4__dropsFor_1.3");
|
||||||
assertThatThrownBy(()->migration.generateMigration())
|
assertThatThrownBy(migration::generateMigration)
|
||||||
.isInstanceOf(IllegalArgumentException.class)
|
.isInstanceOf(IllegalArgumentException.class)
|
||||||
.hasMessageContaining("No 'pendingDrops'"); // subsequent call
|
.hasMessageContaining("No 'pendingDrops'"); // subsequent call
|
||||||
|
|
||||||
System.clearProperty("ddl.migration.pendingDropsFor");
|
System.clearProperty("ddl.migration.pendingDropsFor");
|
||||||
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
assertThat(migration.generateMigration()).isNull(); // subsequent call
|
||||||
|
|
||||||
|
server.shutdown();
|
||||||
logger.info("end");
|
logger.info("end");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+16
-15
@@ -73,27 +73,28 @@ public class ModelBuildBeanVisitorTest extends BaseTestCase {
|
|||||||
config.setDatabasePlatform(new SqlServer17Platform());
|
config.setDatabasePlatform(new SqlServer17Platform());
|
||||||
|
|
||||||
final SpiEbeanServer database = (SpiEbeanServer)DatabaseFactory.create(config);
|
final SpiEbeanServer database = (SpiEbeanServer)DatabaseFactory.create(config);
|
||||||
|
try {
|
||||||
|
ModelBuildContext ctx = new ModelBuildContext(model, config.getDatabasePlatform(), config.getConstraintNaming(), true);
|
||||||
|
|
||||||
|
ModelBuildBeanVisitor addTable = new ModelBuildBeanVisitor(ctx);
|
||||||
|
|
||||||
ModelBuildContext ctx = new ModelBuildContext(model, config.getDatabasePlatform(), config.getConstraintNaming(), true);
|
new VisitAllUsing(addTable, database).visitAllBeans();
|
||||||
|
|
||||||
ModelBuildBeanVisitor addTable = new ModelBuildBeanVisitor(ctx);
|
MTable parent = model.getTable("[CKeyParent]");
|
||||||
|
assertThat(parent.getPkName()).isEqualTo("[pk_CKeyParent]");
|
||||||
|
|
||||||
new VisitAllUsing(addTable, database).visitAllBeans();
|
MTable detail = model.getTable("[CKeyDetail]");
|
||||||
|
assertThat(detail.getPkName()).isEqualTo("[pk_CKeyDetail]");
|
||||||
|
|
||||||
MTable parent = model.getTable("[CKeyParent]");
|
final List<MCompoundForeignKey> compoundKeys = detail.getCompoundKeys();
|
||||||
assertThat(parent.getPkName()).isEqualTo("[pk_CKeyParent]");
|
assertThat(compoundKeys).hasSize(1);
|
||||||
|
final MCompoundForeignKey fkey = compoundKeys.get(0);
|
||||||
|
assertThat(fkey.getName()).isEqualTo("[fk_CKeyDetail_parent]");
|
||||||
|
assertThat(fkey.getIndexName()).isEqualTo("[ix_CKeyDetail_parent]");
|
||||||
|
|
||||||
MTable detail = model.getTable("[CKeyDetail]");
|
} finally {
|
||||||
assertThat(detail.getPkName()).isEqualTo("[pk_CKeyDetail]");
|
database.shutdown();
|
||||||
|
}
|
||||||
final List<MCompoundForeignKey> compoundKeys = detail.getCompoundKeys();
|
|
||||||
assertThat(compoundKeys).hasSize(1);
|
|
||||||
final MCompoundForeignKey fkey = compoundKeys.get(0);
|
|
||||||
assertThat(fkey.getName()).isEqualTo("[fk_CKeyDetail_parent]");
|
|
||||||
assertThat(fkey.getIndexName()).isEqualTo("[ix_CKeyDetail_parent]");
|
|
||||||
|
|
||||||
database.shutdown(true, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assert_compound_pk(ModelContainer model) {
|
private void assert_compound_pk(ModelContainer model) {
|
||||||
|
|||||||
+33
-30
@@ -2,20 +2,20 @@ package io.ebeaninternal.dbmigration.model.build;
|
|||||||
|
|
||||||
|
|
||||||
import io.ebean.BaseTestCase;
|
import io.ebean.BaseTestCase;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
|
import io.ebeaninternal.api.SpiEbeanServer;
|
||||||
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
|
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
|
||||||
import io.ebeaninternal.dbmigration.migration.Migration;
|
import io.ebeaninternal.dbmigration.migration.Migration;
|
||||||
import io.ebeaninternal.dbmigration.migrationreader.MigrationXmlReader;
|
import io.ebeaninternal.dbmigration.migrationreader.MigrationXmlReader;
|
||||||
import io.ebeaninternal.dbmigration.model.CurrentModel;
|
import io.ebeaninternal.dbmigration.model.CurrentModel;
|
||||||
import io.ebeaninternal.dbmigration.model.MTable;
|
import io.ebeaninternal.dbmigration.model.MTable;
|
||||||
import io.ebeaninternal.dbmigration.model.ModelContainer;
|
import io.ebeaninternal.dbmigration.model.ModelContainer;
|
||||||
import io.ebeaninternal.api.SpiEbeanServer;
|
import org.junit.Test;
|
||||||
import org.tests.model.basic.CKeyAssoc;
|
import org.tests.model.basic.CKeyAssoc;
|
||||||
import org.tests.model.basic.CKeyDetail;
|
import org.tests.model.basic.CKeyDetail;
|
||||||
import org.tests.model.basic.CKeyParent;
|
import org.tests.model.basic.CKeyParent;
|
||||||
import org.tests.model.basic.CKeyParentId;
|
import org.tests.model.basic.CKeyParentId;
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@@ -23,9 +23,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
public class ModelBuild_compoundKeyTest extends BaseTestCase {
|
public class ModelBuild_compoundKeyTest extends BaseTestCase {
|
||||||
|
|
||||||
private SpiEbeanServer getServer() {
|
private SpiEbeanServer createServer() {
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("h2");
|
config.setName("h2");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
config.setName("h2other");
|
config.setName("h2other");
|
||||||
@@ -40,46 +40,49 @@ public class ModelBuild_compoundKeyTest extends BaseTestCase {
|
|||||||
config.addClass(CKeyAssoc.class);
|
config.addClass(CKeyAssoc.class);
|
||||||
config.addClass(CKeyParentId.class);
|
config.addClass(CKeyParentId.class);
|
||||||
|
|
||||||
return (SpiEbeanServer) EbeanServerFactory.create(config);
|
return (SpiEbeanServer) DatabaseFactory.create(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() throws IOException {
|
public void test() throws IOException {
|
||||||
|
SpiEbeanServer ebeanServer = createServer();
|
||||||
|
try {
|
||||||
|
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
||||||
|
ModelContainer model = currentModel.read();
|
||||||
|
|
||||||
SpiEbeanServer ebeanServer = getServer();
|
MTable parent = model.getTable("ckey_parent");
|
||||||
|
MTable detail = model.getTable("ckey_detail");
|
||||||
|
|
||||||
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
assertThat(parent).isNotNull();
|
||||||
ModelContainer model = currentModel.read();
|
assertThat(detail).isNotNull();
|
||||||
|
assertThat(parent.primaryKeyColumns()).hasSize(2);
|
||||||
|
assertThat(detail.getCompoundKeys()).hasSize(1);
|
||||||
|
|
||||||
MTable parent = model.getTable("ckey_parent");
|
String apply = Helper.asText(this, "/assert/ModelBuild_compoundKeyTest/apply.sql");
|
||||||
MTable detail = model.getTable("ckey_detail");
|
|
||||||
|
|
||||||
assertThat(parent).isNotNull();
|
String createDdl = currentModel.getCreateDdl();
|
||||||
assertThat(detail).isNotNull();
|
assertThat(createDdl).startsWith("-- Generated by ebean").endsWith(apply);
|
||||||
assertThat(parent.primaryKeyColumns()).hasSize(2);
|
|
||||||
assertThat(detail.getCompoundKeys()).hasSize(1);
|
|
||||||
|
|
||||||
String apply = Helper.asText(this, "/assert/ModelBuild_compoundKeyTest/apply.sql");
|
|
||||||
|
|
||||||
String createDdl = currentModel.getCreateDdl();
|
|
||||||
assertThat(createDdl).startsWith("-- Generated by ebean").endsWith(apply);
|
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
ebeanServer.shutdown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFromMigration() throws IOException {
|
public void testFromMigration() throws IOException {
|
||||||
|
|
||||||
|
|
||||||
Migration migration = MigrationXmlReader.read("/container/test-compoundkey.xml");
|
Migration migration = MigrationXmlReader.read("/container/test-compoundkey.xml");
|
||||||
|
SpiEbeanServer ebeanServer = createServer();
|
||||||
|
try {
|
||||||
|
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
||||||
|
currentModel.setChangeSet(migration.getChangeSet().get(0));
|
||||||
|
|
||||||
SpiEbeanServer ebeanServer = getServer();
|
String createDdl = currentModel.getCreateDdl();
|
||||||
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
String apply = Helper.asText(this, "/assert/ModelBuild_compoundKeyTest/apply.sql");
|
||||||
currentModel.setChangeSet(migration.getChangeSet().get(0));
|
|
||||||
|
|
||||||
String createDdl = currentModel.getCreateDdl();
|
assertThat(createDdl).startsWith("-- Generated by ebean").endsWith(apply);
|
||||||
String apply = Helper.asText(this, "/assert/ModelBuild_compoundKeyTest/apply.sql");
|
} finally {
|
||||||
|
ebeanServer.shutdown();
|
||||||
assertThat(createDdl).startsWith("-- Generated by ebean").endsWith(apply);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+29
-24
@@ -2,15 +2,15 @@ package io.ebeaninternal.dbmigration.model.build;
|
|||||||
|
|
||||||
|
|
||||||
import io.ebean.BaseTestCase;
|
import io.ebean.BaseTestCase;
|
||||||
import io.ebean.EbeanServerFactory;
|
import io.ebean.DatabaseFactory;
|
||||||
import io.ebean.config.ServerConfig;
|
import io.ebean.config.DatabaseConfig;
|
||||||
|
import io.ebeaninternal.api.SpiEbeanServer;
|
||||||
import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions;
|
import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions;
|
||||||
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
|
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
|
||||||
import io.ebeaninternal.dbmigration.model.CurrentModel;
|
import io.ebeaninternal.dbmigration.model.CurrentModel;
|
||||||
import io.ebeaninternal.api.SpiEbeanServer;
|
import org.junit.Test;
|
||||||
import org.tests.model.basic.Person;
|
import org.tests.model.basic.Person;
|
||||||
import org.tests.model.basic.Phone;
|
import org.tests.model.basic.Phone;
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@@ -18,9 +18,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
public class ModelBuild_explicitSequencesTest extends BaseTestCase {
|
public class ModelBuild_explicitSequencesTest extends BaseTestCase {
|
||||||
|
|
||||||
private SpiEbeanServer getServer(boolean postgres) {
|
private SpiEbeanServer createServer(boolean postgres) {
|
||||||
|
|
||||||
ServerConfig config = new ServerConfig();
|
DatabaseConfig config = new DatabaseConfig();
|
||||||
config.setName("h2");
|
config.setName("h2");
|
||||||
config.loadFromProperties();
|
config.loadFromProperties();
|
||||||
config.setName("h2other");
|
config.setName("h2other");
|
||||||
@@ -34,35 +34,40 @@ public class ModelBuild_explicitSequencesTest extends BaseTestCase {
|
|||||||
|
|
||||||
config.addClass(Person.class);
|
config.addClass(Person.class);
|
||||||
config.addClass(Phone.class);
|
config.addClass(Phone.class);
|
||||||
|
return (SpiEbeanServer) DatabaseFactory.create(config);
|
||||||
return (SpiEbeanServer) EbeanServerFactory.create(config);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() throws IOException {
|
public void test() throws IOException {
|
||||||
|
SpiEbeanServer ebeanServer = createServer(false);
|
||||||
|
try {
|
||||||
|
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
||||||
|
|
||||||
SpiEbeanServer ebeanServer = getServer(false);
|
String apply = currentModel.getCreateDdl();
|
||||||
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
assertThat(apply)
|
||||||
|
.startsWith("-- Generated by ebean")
|
||||||
String apply = currentModel.getCreateDdl();
|
.endsWith(Helper.asText(this, "/assert/ModelBuild_explicitSequencesTest/apply.sql"));
|
||||||
assertThat(apply)
|
|
||||||
.startsWith("-- Generated by ebean")
|
|
||||||
.endsWith(Helper.asText(this, "/assert/ModelBuild_explicitSequencesTest/apply.sql"));
|
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
ebeanServer.shutdown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test_asPostgres() throws IOException {
|
public void test_asPostgres() throws IOException {
|
||||||
|
SpiEbeanServer ebeanServer = createServer(true);
|
||||||
|
try {
|
||||||
|
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
||||||
|
final DdlOptions ddlOptions = currentModel.getDdlOptions();
|
||||||
|
ddlOptions.setForeignKeySkipCheck(true);
|
||||||
|
|
||||||
SpiEbeanServer ebeanServer = getServer(true);
|
String apply = currentModel.getCreateDdl();
|
||||||
CurrentModel currentModel = new CurrentModel(ebeanServer);
|
assertThat(apply)
|
||||||
final DdlOptions ddlOptions = currentModel.getDdlOptions();
|
.startsWith("-- Generated by ebean")
|
||||||
ddlOptions.setForeignKeySkipCheck(true);
|
.endsWith(Helper.asText(this, "/assert/ModelBuild_explicitSequencesTest/pg-apply.sql"));
|
||||||
|
} finally {
|
||||||
String apply = currentModel.getCreateDdl();
|
ebeanServer.shutdown();
|
||||||
assertThat(apply)
|
}
|
||||||
.startsWith("-- Generated by ebean")
|
|
||||||
.endsWith(Helper.asText(this, "/assert/ModelBuild_explicitSequencesTest/pg-apply.sql"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user