Skip to content

Commit 1bcf43e

Browse files
committed
Tests cleanup
1 parent fe1a9f8 commit 1bcf43e

12 files changed

Lines changed: 55 additions & 116 deletions

File tree

cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ protected void execute(MergerToken token) throws Exception {
227227

228228
private void executeSql(String sql) throws Exception {
229229

230-
try (Connection conn = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
230+
try (Connection conn = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
231231

232232
try (Statement st = conn.createStatement();) {
233233
st.execute(sql);

cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/BaseLoaderIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void before() throws Exception {
5656
accessStackAdapter = env.testDbAdapter();
5757
store = new DbLoadDataStore();
5858
assertTrue(store.getDbEntities().isEmpty(), "Store is not empty");
59-
this.connection = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();
59+
this.connection = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();
6060
}
6161

6262
@AfterEach

cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/DbLoaderIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ private DbAttribute getDbAttribute(DbEntity ent, String name) {
138138
@BeforeEach
139139
public void before() throws Exception {
140140
adapter = env.dataNode().getAdapter();
141-
this.connection = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();
141+
this.connection = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();
142142
}
143143

144144
private DbLoader createDbLoader() {

cayenne/src/test/java/org/apache/cayenne/access/DataNodeQueryExceptionsIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public SQLAction createSQLAction(SQLActionVisitor visitor) {
7777

7878
int activeConnections() {
7979
try {
80-
UnmanagedPoolingDataSource ds = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().unwrap(UnmanagedPoolingDataSource.class);
80+
UnmanagedPoolingDataSource ds = CayenneTestsEnv.COMMON_SCHEMA.dataSource().unwrap(UnmanagedPoolingDataSource.class);
8181

8282
Method poolSize = UnmanagedPoolingDataSource.class.getDeclaredMethod("poolSize");
8383
poolSize.setAccessible(true);

cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void executeSelect() throws Exception {
106106

107107
MockOperationObserver observer = new MockOperationObserver();
108108

109-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
109+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
110110
plan.performAction(c, observer);
111111
}
112112

@@ -163,7 +163,7 @@ public void selectUtilDate() throws Exception {
163163

164164
MockOperationObserver observer = new MockOperationObserver();
165165

166-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
166+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
167167
plan.performAction(c, observer);
168168
}
169169

@@ -193,7 +193,7 @@ public void selectSQLDate() throws Exception {
193193

194194
MockOperationObserver observer = new MockOperationObserver();
195195

196-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
196+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
197197
plan.performAction(c, observer);
198198
}
199199

@@ -223,7 +223,7 @@ public void selectSQLTimestamp() throws Exception {
223223

224224
MockOperationObserver observer = new MockOperationObserver();
225225

226-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
226+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
227227
plan.performAction(c, observer);
228228
}
229229

@@ -251,7 +251,7 @@ public void executeUpdate() throws Exception {
251251

252252
SQLAction action = node.getAdapter().getAction(template, node);
253253

254-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
254+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
255255
MockOperationObserver observer = new MockOperationObserver();
256256
action.performAction(c, observer);
257257

@@ -273,7 +273,7 @@ public void executeUpdateNoParameters() throws Exception {
273273

274274
SQLAction action = node.getAdapter().getAction(template, node);
275275

276-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
276+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
277277
MockOperationObserver observer = new MockOperationObserver();
278278
action.performAction(c, observer);
279279

@@ -308,7 +308,7 @@ public void executeUpdateBatch() throws Exception {
308308
assertSame(node, action.dataNode);
309309
assertSame(template, action.getQuery());
310310

311-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();) {
311+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection();) {
312312
MockOperationObserver observer = new MockOperationObserver();
313313
action.performAction(c, observer);
314314

cayenne/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ public class JdbcPkGeneratorIT {
4545
@BeforeEach
4646
public void setUp() throws Exception {
4747
node = env.dataNode();
48-
CayenneTestsEnv.SCHEMAS.dropPKSupport();
48+
49+
// TODO: we should have a dedicated DbSchemaManager for such destructive operations working off of its own DB
50+
CayenneTestsEnv.COMMON_SCHEMA.dropPKSupport();
4951
}
5052

5153
@AfterEach
@@ -57,8 +59,9 @@ public void tearDown() throws Exception {
5759

5860
pkGenerator.setPkStartValue(JdbcPkGenerator.DEFAULT_PK_START_VALUE);
5961

60-
CayenneTestsEnv.SCHEMAS.dropPKSupport();
61-
CayenneTestsEnv.SCHEMAS.createPKSupport();
62+
// TODO: we should have a dedicated DbSchemaManager for such destructive operations working off of its own DB
63+
CayenneTestsEnv.COMMON_SCHEMA.dropPKSupport();
64+
CayenneTestsEnv.COMMON_SCHEMA.createPKSupport();
6265
}
6366
}
6467

cayenne/src/test/java/org/apache/cayenne/dba/TypesMappingIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public void typeInfoCompleteness() throws Exception {
130130
// check counts
131131
// since more then 1 database type can map to a single JDBC type
132132
int len = 0;
133-
try (Connection conn = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection()) {
133+
try (Connection conn = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection()) {
134134
DatabaseMetaData md = conn.getMetaData();
135135
try (ResultSet rs = md.getTypeInfo()) {
136136
while (rs.next()) {
@@ -153,7 +153,7 @@ public void typeInfoCompleteness() throws Exception {
153153
}
154154

155155
private TypesMapping createTypesMapping() throws Exception {
156-
try (Connection conn = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection()) {
156+
try (Connection conn = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection()) {
157157
DatabaseMetaData md = conn.getMetaData();
158158
return new TypesMapping(md);
159159
}

cayenne/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void createAdapter() throws Exception {
4343

4444
DbAdapter adapter;
4545

46-
try (Connection c = CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection()) {
46+
try (Connection c = CayenneTestsEnv.COMMON_SCHEMA.dataSource().getConnection()) {
4747
adapter = sniffer.createAdapter(c.getMetaData());
4848
}
4949

cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.apache.cayenne.configuration.DataSourceDescriptor;
3232
import org.apache.cayenne.configuration.runtime.CoreModule;
3333
import org.apache.cayenne.configuration.runtime.DbAdapterFactory;
34+
import org.apache.cayenne.datasource.DataSourceBuilder;
3435
import org.apache.cayenne.dba.DbAdapter;
3536
import org.apache.cayenne.di.AdhocObjectFactory;
3637
import org.apache.cayenne.di.DIBootstrap;
@@ -44,7 +45,6 @@
4445
import org.apache.cayenne.test.jdbc.DbHelper;
4546
import org.apache.cayenne.test.jdbc.TableHelper;
4647
import org.apache.cayenne.unit.dba.TestDbAdapter;
47-
import org.apache.cayenne.unit.runtime.DbCleaner;
4848
import org.apache.cayenne.unit.runtime.FlavoredDbHelper;
4949
import org.apache.cayenne.unit.runtime.RuntimeCaseModule;
5050
import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
@@ -67,19 +67,25 @@ public class CayenneTestsEnv implements BeforeEachCallback, AfterEachCallback {
6767
private static final Injector INJECTOR;
6868

6969
// shared stack parts... use these directly from the tests
70-
public static final TestDataSources DATA_SOURCES;
71-
public static final AllTestsSchemaManager SCHEMAS;
70+
public static final DbSchemaManager COMMON_SCHEMA;
7271

7372
static {
7473
INJECTOR = DIBootstrap.createInjector(new RuntimeCaseModule());
7574

76-
DATA_SOURCES = new TestDataSources(
77-
INJECTOR.getInstance(DataSourceDescriptor.class),
78-
INJECTOR.getInstance(AdhocObjectFactory.class));
79-
80-
SCHEMAS = new AllTestsSchemaManager(DATA_SOURCES.sharedDataSource());
75+
DataSourceDescriptor dataSourceDescriptor = INJECTOR.getInstance(DataSourceDescriptor.class);
76+
DataSource dataSource = DataSourceBuilder
77+
.url(dataSourceDescriptor.getDataSourceUrl())
78+
.driver(dataSourceDescriptor.getJdbcDriver())
79+
.userName(dataSourceDescriptor.getUserName())
80+
.password(dataSourceDescriptor.getPassword())
81+
.pool(dataSourceDescriptor.getMinConnections(), dataSourceDescriptor.getMaxConnections())
82+
.build();
8183

82-
SCHEMAS.rebuildSchema();
84+
// "cayenne-ALL.xml" is a special synthetic project file that includes all test DataMaps
85+
// TODO: support for multiple schemas, so that DDL operation scope (such as dropping PK)
86+
// can be isolated from the wider test environment
87+
COMMON_SCHEMA = new DbSchemaManager("cayenne-ALL.xml", dataSource);
88+
COMMON_SCHEMA.rebuildSchema();
8389
}
8490

8591
private final String project;
@@ -121,7 +127,7 @@ public CayenneTestsEnv withWeakReferences() {
121127
@Override
122128
public void beforeEach(ExtensionContext ctx) {
123129
this.runtime = buildRuntime();
124-
synthesizeDataNodes(runtime);
130+
synthesizeDataNodes(runtime, COMMON_SCHEMA.dataSource());
125131

126132
this.context = (DataContext) runtime.newContext();
127133

@@ -130,12 +136,12 @@ public void beforeEach(ExtensionContext ctx) {
130136
tweakProcedures(runtime, testDbAdapter);
131137

132138
this.dbHelper = new FlavoredDbHelper(
133-
DATA_SOURCES.sharedDataSource(),
139+
COMMON_SCHEMA.dataSource(),
134140
firstAdapter.getQuotingStrategy(),
135141
context.getEntityResolver().getDataMaps().iterator().next());
136142

137143
this.dbCleaner = new DbCleaner(
138-
SCHEMAS,
144+
COMMON_SCHEMA,
139145
dbHelper,
140146
context.getEntityResolver().getDataMaps().stream().map(DataMap::getName).collect(Collectors.toSet()));
141147

@@ -168,7 +174,7 @@ private CayenneRuntime buildRuntime() {
168174
.build();
169175
}
170176

171-
private static void synthesizeDataNodes(CayenneRuntime runtime) {
177+
private static void synthesizeDataNodes(CayenneRuntime runtime, DataSource dataSource) {
172178

173179
DataDomain domain = runtime.getDataDomain();
174180
Injector runtimeInjector = runtime.getInjector();
@@ -181,8 +187,6 @@ private static void synthesizeDataNodes(CayenneRuntime runtime) {
181187

182188
for (DataMap dataMap : domain.getDataMaps()) {
183189

184-
DataSource dataSource = DATA_SOURCES.dataSource(dataMap.getName());
185-
186190
DataNode node = new TestTelemetryDataNode(dataMap.getName());
187191

188192
node.setJdbcEventLogger(jdbcEventLogger);

cayenne/src/test/java/org/apache/cayenne/unit/runtime/DbCleaner.java renamed to cayenne/src/test/java/org/apache/cayenne/unit/DbCleaner.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@
1717
* under the License.
1818
****************************************************************/
1919

20-
package org.apache.cayenne.unit.runtime;
20+
package org.apache.cayenne.unit;
2121

2222
import org.apache.cayenne.map.DbEntity;
2323
import org.apache.cayenne.test.jdbc.DbHelper;
24-
import org.apache.cayenne.unit.AllTestsSchemaManager;
2524

2625
import java.sql.SQLException;
2726
import java.util.Set;
@@ -32,10 +31,10 @@
3231
public class DbCleaner {
3332

3433
private final DbHelper dbHelper;
35-
private final AllTestsSchemaManager parentSchemaManager;
34+
private final DbSchemaManager parentSchemaManager;
3635
private final Set<String> dataMaps;
3736

38-
public DbCleaner(AllTestsSchemaManager parentSchemaManager, DbHelper dbHelper, Set<String> dataMaps) {
37+
public DbCleaner(DbSchemaManager parentSchemaManager, DbHelper dbHelper, Set<String> dataMaps) {
3938
this.parentSchemaManager = parentSchemaManager;
4039
this.dbHelper = dbHelper;
4140
this.dataMaps = dataMaps;

0 commit comments

Comments
 (0)