From b051aa68fde446b91fa313f52abe0ffbf350d761 Mon Sep 17 00:00:00 2001 From: Koen Aers Date: Thu, 31 Jul 2025 19:54:04 +0300 Subject: [PATCH] HBX-3068: Refactor the Ant integration tests to factor out common code - Pull up method 'createHibernatePropertiesFile()' to TestTemplate - Add 'hibernateToolTaskXml' and 'databaseCreationScript' instance variables to TestTemplate along with respective setter methods - Remove the methods 'createDatabaseScript()' and 'hibernateToolTaskXml()' from TestTemplate and instead use the instance variables above - Set the instance variables in the respective integration test classes appropriately and get rid of the inherited methods from above Signed-off-by: Koen Aers --- .../tool/ant/hbm2java/JpaDefaultTestIT.java | 39 ++++------------ .../ant/hbm2java/NoAnnotationsTestIT.java | 38 ++++------------ .../tool/ant/hbm2java/NoGenericsTestIT.java | 45 +++++-------------- .../tool/ant/hbm2java/UseGenericsTestIT.java | 44 +++++------------- .../tool/ant/tutorial/TutorialTestIT.java | 38 ++++------------ .../hibernate/tool/it/ant/TestTemplate.java | 32 ++++++++++--- 6 files changed, 77 insertions(+), 159 deletions(-) diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java index 8086d82a49..3ff8cce710 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java @@ -13,6 +13,15 @@ public class JpaDefaultTestIT extends TestTemplate { @Test public void testJpaDefault() throws Exception { + setHibernateToolTaskXml( + " \n" + + " \n" + + " \n" + + " \n" + ); + setDatabaseCreationScript(new String[] { + "create table PERSON (ID int not null, NAME varchar(20), primary key (ID))" + }); createBuildXmlFile(); createDatabase(); createHibernatePropertiesFile(); @@ -20,30 +29,6 @@ public void testJpaDefault() throws Exception { verifyResult(); } - protected String hibernateToolTaskXml() { - return hibernateToolTaskXml; - } - - protected String[] createDatabaseScript() { - return new String[] { - "create table PERSON (ID int not null, NAME varchar(20), primary key (ID))" - }; - } - - private void createHibernatePropertiesFile() throws Exception { - File hibernatePropertiesFile = new File(getProjectDir(), "hibernate.properties"); - StringBuffer hibernatePropertiesFileContents = new StringBuffer(); - hibernatePropertiesFileContents - .append("hibernate.connection.driver_class=org.h2.Driver\n") - .append("hibernate.connection.url=" + constructJdbcConnectionString() + "\n") - .append("hibernate.connection.username=\n") - .append("hibernate.connection.password=\n") - .append("hibernate.default_catalog=TEST\n") - .append("hibernate.default_schema=PUBLIC\n"); - Files.writeString(hibernatePropertiesFile.toPath(), hibernatePropertiesFileContents.toString()); - assertTrue(hibernatePropertiesFile.exists()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -58,10 +43,4 @@ private void verifyResult() throws Exception { assertTrue(generatedPersonJavaFileContents.contains("public class Person ")); } - private static final String hibernateToolTaskXml = - " \n" + - " \n" + - " \n" + - " \n" ; - } diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java index 570c3ea486..9596f71ac1 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java @@ -14,6 +14,15 @@ public class NoAnnotationsTestIT extends TestTemplate { @Test public void testNoAnnotations() throws Exception { + setHibernateToolTaskXml( + " \n" + + " \n" + + " \n" + + " \n" + ); + setDatabaseCreationScript(new String[] { + "create table PERSON (ID int not null, NAME varchar(20), primary key (ID))" + }); createBuildXmlFile(); createDatabase(); createHibernatePropertiesFile(); @@ -21,30 +30,6 @@ public void testNoAnnotations() throws Exception { verifyResult(); } - protected String hibernateToolTaskXml() { - return hibernateToolTaskXml; - } - - protected String[] createDatabaseScript() { - return new String[] { - "create table PERSON (ID int not null, NAME varchar(20), primary key (ID))" - }; - } - - private void createHibernatePropertiesFile() throws Exception { - File hibernatePropertiesFile = new File(getProjectDir(), "hibernate.properties"); - StringBuffer hibernatePropertiesFileContents = new StringBuffer(); - hibernatePropertiesFileContents - .append("hibernate.connection.driver_class=org.h2.Driver\n") - .append("hibernate.connection.url=" + constructJdbcConnectionString() + "\n") - .append("hibernate.connection.username=\n") - .append("hibernate.connection.password=\n") - .append("hibernate.default_catalog=TEST\n") - .append("hibernate.default_schema=PUBLIC\n"); - Files.writeString(hibernatePropertiesFile.toPath(), hibernatePropertiesFileContents.toString()); - assertTrue(hibernatePropertiesFile.exists()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -59,9 +44,4 @@ private void verifyResult() throws Exception { assertTrue(generatedPersonJavaFileContents.contains("public class Person ")); } - private static final String hibernateToolTaskXml = - " \n" + - " \n" + - " \n" + - " \n" ; } diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java index 77a4f0f4b1..8113b65856 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java @@ -14,6 +14,18 @@ public class NoGenericsTestIT extends TestTemplate { @Test public void testUseGenerics() throws Exception { + setHibernateToolTaskXml( + " \n" + + " \n" + + " \n" + + " \n" + ); + setDatabaseCreationScript(new String[] { + "create table PERSON (ID int not null, NAME varchar(20), " + + "primary key (ID))", + "create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " + + "primary key (ID), foreign key (OWNER_ID) references PERSON(ID))" + }); createBuildXmlFile(); createDatabase(); createHibernatePropertiesFile(); @@ -21,33 +33,6 @@ public void testUseGenerics() throws Exception { verifyResult(); } - protected String hibernateToolTaskXml() { - return hibernateToolTaskXml; - } - - protected String[] createDatabaseScript() { - return new String[] { - "create table PERSON (ID int not null, NAME varchar(20), " + - "primary key (ID))", - "create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " + - "primary key (ID), foreign key (OWNER_ID) references PERSON(ID))" - }; - } - - private void createHibernatePropertiesFile() throws Exception { - File hibernatePropertiesFile = new File(getProjectDir(), "hibernate.properties"); - StringBuffer hibernatePropertiesFileContents = new StringBuffer(); - hibernatePropertiesFileContents - .append("hibernate.connection.driver_class=org.h2.Driver\n") - .append("hibernate.connection.url=" + constructJdbcConnectionString() + "\n") - .append("hibernate.connection.username=\n") - .append("hibernate.connection.password=\n") - .append("hibernate.default_catalog=TEST\n") - .append("hibernate.default_schema=PUBLIC\n"); - Files.writeString(hibernatePropertiesFile.toPath(), hibernatePropertiesFileContents.toString()); - assertTrue(hibernatePropertiesFile.exists()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -68,10 +53,4 @@ private void verifyResult() throws Exception { assertTrue(generatedItemJavaFileContents.contains("public class Item ")); } - private static final String hibernateToolTaskXml = - " \n" + - " \n" + - " \n" + - " \n" ; - } diff --git a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java index e4b18066b2..c8297e1742 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java @@ -13,6 +13,18 @@ public class UseGenericsTestIT extends TestTemplate { @Test public void testUseGenerics() throws Exception { + setHibernateToolTaskXml( + " \n" + + " \n" + + " \n" + + " \n" + ); + setDatabaseCreationScript(new String[] { + "create table PERSON (ID int not null, NAME varchar(20), " + + "primary key (ID))", + "create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " + + "primary key (ID), foreign key (OWNER_ID) references PERSON(ID))" + }); createBuildXmlFile(); createDatabase(); createHibernatePropertiesFile(); @@ -20,33 +32,6 @@ public void testUseGenerics() throws Exception { verifyResult(); } - protected String hibernateToolTaskXml() { - return hibernateToolTaskXml; - } - - protected String[] createDatabaseScript() { - return new String[] { - "create table PERSON (ID int not null, NAME varchar(20), " + - "primary key (ID))", - "create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " + - "primary key (ID), foreign key (OWNER_ID) references PERSON(ID))" - }; - } - - private void createHibernatePropertiesFile() throws Exception { - File hibernatePropertiesFile = new File(getProjectDir(), "hibernate.properties"); - StringBuffer hibernatePropertiesFileContents = new StringBuffer(); - hibernatePropertiesFileContents - .append("hibernate.connection.driver_class=org.h2.Driver\n") - .append("hibernate.connection.url=" + constructJdbcConnectionString() + "\n") - .append("hibernate.connection.username=\n") - .append("hibernate.connection.password=\n") - .append("hibernate.default_catalog=TEST\n") - .append("hibernate.default_schema=PUBLIC\n"); - Files.writeString(hibernatePropertiesFile.toPath(), hibernatePropertiesFileContents.toString()); - assertTrue(hibernatePropertiesFile.exists()); - } - private void verifyResult() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -67,9 +52,4 @@ private void verifyResult() throws Exception { assertTrue(generatedItemJavaFileContents.contains("public class Item ")); } - private static final String hibernateToolTaskXml = - " \n" + - " \n" + - " \n" + - " \n" ; } diff --git a/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java b/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java index 503c17c8e4..e9a271907d 100644 --- a/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java +++ b/ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java @@ -13,6 +13,15 @@ public class TutorialTestIT extends TestTemplate { @Test public void testTutorial() throws Exception { + setHibernateToolTaskXml( + " \n" + + " \n" + + " \n" + + " \n" + ); + setDatabaseCreationScript(new String[] { + "create table PERSON (ID int not null, NAME varchar(20), primary key (ID))" + }); createBuildXmlFile(); createDatabase(); createHibernatePropertiesFile(); @@ -20,30 +29,6 @@ public void testTutorial() throws Exception { verifyResult(); } - protected String hibernateToolTaskXml() { - return hibernateToolTaskXml; - } - - protected String[] createDatabaseScript() { - return new String[] { - "create table PERSON (ID int not null, NAME varchar(20), primary key (ID))" - }; - } - - private void createHibernatePropertiesFile() throws Exception { - File hibernatePropertiesFile = new File(getProjectDir(), "hibernate.properties"); - StringBuffer hibernatePropertiesFileContents = new StringBuffer(); - hibernatePropertiesFileContents - .append("hibernate.connection.driver_class=org.h2.Driver\n") - .append("hibernate.connection.url=" + constructJdbcConnectionString() + "\n") - .append("hibernate.connection.username=\n") - .append("hibernate.connection.password=\n") - .append("hibernate.default_catalog=TEST\n") - .append("hibernate.default_schema=PUBLIC\n"); - Files.writeString(hibernatePropertiesFile.toPath(), hibernatePropertiesFileContents.toString()); - assertTrue(hibernatePropertiesFile.exists()); - } - private void verifyResult() { File generatedOutputFolder = new File(getProjectDir(), "generated"); assertTrue(generatedOutputFolder.exists()); @@ -54,9 +39,4 @@ private void verifyResult() { assertTrue(generatedPersonJavaFile.isFile()); } - private static final String hibernateToolTaskXml = - " \n" + - " \n" + - " \n" + - " \n" ; } diff --git a/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java b/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java index 7cbfbb9289..ddc8654389 100644 --- a/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java +++ b/ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java @@ -11,24 +11,31 @@ import java.sql.DriverManager; import java.sql.Statement; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; public abstract class TestTemplate { @TempDir private File projectDir; + private String hibernateToolTaskXml; + private String[] databaseCreationScript; + protected File getProjectDir() { return projectDir; } - protected abstract String hibernateToolTaskXml(); + protected void setHibernateToolTaskXml(String xml) { + this.hibernateToolTaskXml = xml; + } - protected abstract String[] createDatabaseScript(); + protected void setDatabaseCreationScript(String[] sqls) { + this.databaseCreationScript = sqls; + } protected String constructBuildXmlFileContents() { - return buildXmlFileContents.replace("@hibernateToolTaskXml@", hibernateToolTaskXml()); + assertNotNull(hibernateToolTaskXml); + return buildXmlFileContents.replace("@hibernateToolTaskXml@", hibernateToolTaskXml); } protected void runAntBuild() { @@ -57,7 +64,7 @@ protected void createDatabase() throws Exception { assertFalse(databaseFile.isFile()); Connection connection = DriverManager.getConnection(constructJdbcConnectionString()); Statement statement = connection.createStatement(); - for (String sql : createDatabaseScript()) { + for (String sql : databaseCreationScript) { statement.execute(sql); } statement.close(); @@ -66,6 +73,19 @@ protected void createDatabase() throws Exception { assertTrue(databaseFile.isFile()); } + protected void createHibernatePropertiesFile() throws Exception { + File hibernatePropertiesFile = new File(getProjectDir(), "hibernate.properties"); + String hibernatePropertiesFileContents = + "hibernate.connection.driver_class=org.h2.Driver\n" + + "hibernate.connection.url=" + constructJdbcConnectionString() + "\n" + + "hibernate.connection.username=\n" + + "hibernate.connection.password=\n" + + "hibernate.default_catalog=TEST\n" + + "hibernate.default_schema=PUBLIC\n"; + Files.writeString(hibernatePropertiesFile.toPath(), hibernatePropertiesFileContents); + assertTrue(hibernatePropertiesFile.exists()); + } + private DefaultLogger getConsoleLogger() { DefaultLogger consoleLogger = new DefaultLogger(); consoleLogger.setErrorPrintStream(System.err);