diff --git a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/IntegrateTestRunningEnvironment.java b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/IntegrateTestRunningEnvironment.java index 316cce7009517..8483729ec9bac 100644 --- a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/IntegrateTestRunningEnvironment.java +++ b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/IntegrateTestRunningEnvironment.java @@ -17,6 +17,7 @@ package io.shardingjdbc.dbtest; +import io.shardingjdbc.core.constant.DatabaseType; import lombok.Getter; import java.io.IOException; @@ -38,7 +39,7 @@ public final class IntegrateTestRunningEnvironment { private final String assertPath; - private final Collection databaseTypes; + private final Collection databaseTypes; private IntegrateTestRunningEnvironment() { Properties prop = new Properties(); @@ -50,8 +51,8 @@ private IntegrateTestRunningEnvironment() { initialized = Boolean.valueOf(prop.getProperty("initialized", Boolean.FALSE.toString())); assertPath = prop.getProperty("assert.path"); databaseTypes = new LinkedList<>(); - for (String each : prop.getProperty("databases", "h2").split(",")) { - databaseTypes.add(each.trim()); + for (String each : prop.getProperty("databases", DatabaseType.H2.name()).split(",")) { + databaseTypes.add(DatabaseType.valueOf(each.trim())); } } diff --git a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/StartTest.java b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/StartTest.java index c09caea41c96d..2cbe877083283 100644 --- a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/StartTest.java +++ b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/StartTest.java @@ -46,11 +46,11 @@ @RunWith(Parameterized.class) @RequiredArgsConstructor -public class StartTest { +public final class StartTest { private static boolean isInitialized = IntegrateTestRunningEnvironment.getInstance().isInitialized(); - private static boolean isClean = IntegrateTestRunningEnvironment.getInstance().isInitialized(); + private static boolean isCleaned = IntegrateTestRunningEnvironment.getInstance().isInitialized(); private static final List RESULT_ASSERT = new ArrayList<>(); @@ -59,35 +59,30 @@ public class StartTest { private final String id; @Parameters(name = "{0} ({2}) -> {1}") - public static Collection getParameters() { + public static Collection getParameters() throws IOException, JAXBException { String assertPath = IntegrateTestRunningEnvironment.getInstance().getAssertPath(); assertPath = PathUtil.getPath(assertPath); List paths = FileUtil.getAllFilePaths(new File(assertPath), "assert-", "xml"); + for (String each : paths) { + AssertsDefinition assertsDefinition = AnalyzeConfig.analyze(each); - try { - for (String each : paths) { - AssertsDefinition assertsDefinition = AnalyzeConfig.analyze(each); - - if (StringUtils.isNotBlank(assertsDefinition.getBaseConfig())) { - String[] dbs = StringUtils.split(assertsDefinition.getBaseConfig(), ","); - for (String db : dbs) { - InItCreateSchema.addDatabase(db); - } - } else { - for (String db : AssertEngine.DEFAULT_DATABASES) { - InItCreateSchema.addDatabase(db); - } + if (StringUtils.isNotBlank(assertsDefinition.getBaseConfig())) { + String[] dbs = StringUtils.split(assertsDefinition.getBaseConfig(), ","); + for (String db : dbs) { + InItCreateSchema.addDatabase(db); + } + } else { + for (String db : AssertEngine.DEFAULT_DATABASES) { + InItCreateSchema.addDatabase(db); } - List assertDQLs = assertsDefinition.getAssertDQL(); - collateData(RESULT_ASSERT, each, assertDQLs); - List assertDMLs = assertsDefinition.getAssertDML(); - collateData(RESULT_ASSERT, each, assertDMLs); - List assertDDLs = assertsDefinition.getAssertDDL(); - collateData(RESULT_ASSERT, each, assertDDLs); - AssertEngine.addAssertDefinition(each, assertsDefinition); } - } catch (JAXBException | IOException e) { - e.printStackTrace(); + List assertDQLs = assertsDefinition.getAssertDQL(); + collateData(RESULT_ASSERT, each, assertDQLs); + List assertDMLs = assertsDefinition.getAssertDML(); + collateData(RESULT_ASSERT, each, assertDMLs); + List assertDDLs = assertsDefinition.getAssertDDL(); + collateData(RESULT_ASSERT, each, assertDDLs); + AssertEngine.addAssertDefinition(each, assertsDefinition); } return RESULT_ASSERT; } @@ -126,9 +121,9 @@ public void test() { @AfterClass public static void afterClass() { - if (isClean) { + if (isCleaned) { InItCreateSchema.dropDatabase(); - isClean = false; + isCleaned = false; } } } diff --git a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/asserts/AssertEngine.java b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/asserts/AssertEngine.java index ba85d7d0f67ec..314004a77c4aa 100644 --- a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/asserts/AssertEngine.java +++ b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/asserts/AssertEngine.java @@ -21,6 +21,7 @@ import io.shardingjdbc.core.api.ShardingDataSourceFactory; import io.shardingjdbc.core.constant.DatabaseType; import io.shardingjdbc.core.jdbc.core.datasource.ShardingDataSource; +import io.shardingjdbc.dbtest.IntegrateTestRunningEnvironment; import io.shardingjdbc.dbtest.common.DatabaseUtil; import io.shardingjdbc.dbtest.common.PathUtil; import io.shardingjdbc.dbtest.config.AnalyzeDataset; @@ -126,7 +127,7 @@ public static boolean runAssert(final String path, final String id) { private static void onlyDatabaseRun(final String dbName, final String path, final String id, final AssertsDefinition assertsDefinition, final String rootPath, final String msg, final String initDataPath, final List dbs) throws IOException, SQLException, SAXException, ParserConfigurationException, XPathExpressionException, ParseException { DataSource dataSource = null; try { - for (DatabaseType each : InItCreateSchema.getDatabaseSchemas()) { + for (DatabaseType each : IntegrateTestRunningEnvironment.getInstance().getDatabaseTypes()) { Map dataSourceMaps = new HashMap<>(); for (String db : dbs) { @@ -141,15 +142,8 @@ private static void onlyDatabaseRun(final String dbName, final String path, fina String configPath = PathUtil.getPath(assertsDefinition.getShardingRuleConfig(), rootPath) + "-" + dbName + ".yaml"; dataSource = getDataSource(dataSourceMaps, configPath); } - - - // dql run dqlRun(each, initDataPath, dbName, path, id, assertsDefinition, rootPath, msg, dataSource, dataSourceMaps, dbs); - - // dml run dmlRun(each, initDataPath, dbName, path, id, assertsDefinition, rootPath, msg, dataSource, dataSourceMaps, dbs); - - // ddl run ddlRun(each, id, dbName, assertsDefinition, rootPath, msg, dataSource); } } finally { @@ -168,7 +162,6 @@ private static void ddlRun(final DatabaseType databaseType, final String id, fin if (!databaseTypes.contains(databaseType)) { break; } - AssertDDLDefinition anAssert = each; String baseConfig = anAssert.getBaseConfig(); if (StringUtils.isNotBlank(baseConfig)) { diff --git a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/init/InItCreateSchema.java b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/init/InItCreateSchema.java index 31e541a4d96e3..bacc837c12758 100644 --- a/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/init/InItCreateSchema.java +++ b/sharding-jdbc-core/src/test/java/io/shardingjdbc/dbtest/init/InItCreateSchema.java @@ -43,12 +43,10 @@ import java.util.List; import java.util.Set; -public class InItCreateSchema { - - private static Set DATABASE_SCHEMAS = new HashSet<>(); +public final class InItCreateSchema { @Getter - public static final Set DATABASES = new HashSet<>(); + private static final Set DATABASES = new HashSet<>(); /** * add database. @@ -59,25 +57,12 @@ public static void addDatabase(String database) { DATABASES.add(database); } - static { - Set databaseSchemas = InItCreateSchema.getDatabaseSchema(); - InItCreateSchema.setDatabaseSchemas(databaseSchemas); - } - - public static Set getDatabaseSchemas() { - return DATABASE_SCHEMAS; - } - - public static void setDatabaseSchemas(final Set databaseSchemas) { - DATABASE_SCHEMAS = databaseSchemas; - } - /** * Initialize the database table. */ public static synchronized void createTable() { - for (DatabaseType db : DATABASE_SCHEMAS) { - createSchema(db); + for (DatabaseType each : IntegrateTestRunningEnvironment.getInstance().getDatabaseTypes()) { + createSchema(each); } } @@ -91,7 +76,7 @@ public static void createDatabase() { for (String database : DATABASES) { String sql = getCreateTableSql(DatabaseType.H2, AnalyzeDatabase.analyze(InItCreateSchema.class.getClassLoader() .getResource("integrate/dbtest").getPath() + "/" + database + "/database.xml")); - for (DatabaseType each : DATABASE_SCHEMAS) { + for (DatabaseType each : IntegrateTestRunningEnvironment.getInstance().getDatabaseTypes()) { if (each.equals(DatabaseType.H2)) { continue; } @@ -143,7 +128,7 @@ public static synchronized void dropDatabase() { for (String database : DATABASES) { String sql = getDropTableSql(DatabaseType.H2, AnalyzeDatabase.analyze(InItCreateSchema.class.getClassLoader() .getResource("integrate/dbtest").getPath() + "/" + database + "/database.xml")); - for (DatabaseType each : DATABASE_SCHEMAS) { + for (DatabaseType each : IntegrateTestRunningEnvironment.getInstance().getDatabaseTypes()) { if (each.equals(DatabaseType.H2)) { continue; } @@ -365,15 +350,6 @@ private static Connection initialConnection(final String dbName, final DatabaseT return buildDataSource(dbName, type).getConnection(); } - public static Set getDatabaseSchema() { - Set dbset = new HashSet<>(); - for (String each : IntegrateTestRunningEnvironment.getInstance().getDatabaseTypes()) { - DatabaseType databaseType = getDatabaseType(each); - dbset.add(databaseType); - } - return dbset; - } - private static String getCreateTableSql(final DatabaseType databaseType, final List databases) { String basesql = "CREATE DATABASE "; if (DatabaseType.Oracle == databaseType) { @@ -398,22 +374,6 @@ private static String getDropTableSql(final DatabaseType databaseType, final Lis return StringUtils.join(sqls, "\n"); } - /** - * Get the database type enumeration. - * - * @param type String database type - * @return database enumeration - */ - public static DatabaseType getDatabaseType(final String type) { - DatabaseType[] databaseTypes = DatabaseType.values(); - for (DatabaseType each : databaseTypes) { - if (type.equalsIgnoreCase(each.name())) { - return each; - } - } - return DatabaseType.H2; - } - /** * Get the database type enumeration. * diff --git a/sharding-jdbc-core/src/test/resources/integrate/env.properties b/sharding-jdbc-core/src/test/resources/integrate/env.properties index dcbc1b25656ef..bca0b65d822ab 100644 --- a/sharding-jdbc-core/src/test/resources/integrate/env.properties +++ b/sharding-jdbc-core/src/test/resources/integrate/env.properties @@ -1,4 +1,4 @@ initialized=false assert.path=classpath:asserts -#databases=mysql,postgresql,sqlserver,oracle -databases=h2 +#databases=H2,MySQL,Oracle,SQLServer,PostgreSQL +databases=H2