From 715810b1147025241e344b881c9f6a40a2e941d9 Mon Sep 17 00:00:00 2001 From: Koen Aers Date: Mon, 1 Sep 2025 11:34:28 +0200 Subject: [PATCH] HBX-3080: Refactor the Gradle integration tests to factor out common code - Create an instance variable 'hibernateToolsExtensionSection' in TestTemplate along with setter/getter - Pull up method 'TestTemplate#addHibernateToolsExtension(StringBuffer)' making use of the above instance variable - Set the instance variable above in the test method of the 'NoGenerics' and 'NoAnnotationsTest' test classes Signed-off-by: Koen Aers --- .../tool/gradle/java/NoAnnotationsTest.java | 18 +++++------------- .../hibernate/tool/gradle/java/NoGenerics.java | 18 +++++------------- .../hibernate/tool/it/gradle/TestTemplate.java | 15 +++++++++++++-- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoAnnotationsTest.java b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoAnnotationsTest.java index f6d85cebf2..fb91d3f6fb 100644 --- a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoAnnotationsTest.java +++ b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoAnnotationsTest.java @@ -26,6 +26,11 @@ public void testTutorial() throws Exception { "create table PERSON (ID int not null, NAME varchar(20), primary key (ID))", "insert into PERSON values (1, 'foo')" }); + setHibernateToolsExtensionSection( + "hibernateTools { \n" + + " generateAnnotations=false \n" + + "}" + ); createProject(); executeGradleCommand("generateJava"); verifyProject(); @@ -45,17 +50,4 @@ private void verifyProject() throws Exception { assertTrue(generatedPersonJavaFileContents.contains("public class Person ")); } - protected void addHibernateToolsExtension(StringBuffer gradleBuildFileContents) { - int pos = gradleBuildFileContents.indexOf("dependencies {"); - pos = gradleBuildFileContents.indexOf("}", pos); - StringBuffer hibernateToolsExtension = new StringBuffer(); - hibernateToolsExtension - .append("\n") - .append("\n") - .append("hibernateTools { \n") - .append(" generateAnnotations=false \n") - .append("}"); - gradleBuildFileContents.insert(pos + 1, hibernateToolsExtension.toString()); - } - } diff --git a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoGenerics.java b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoGenerics.java index 9194455378..8c2ce4a619 100644 --- a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoGenerics.java +++ b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/NoGenerics.java @@ -26,6 +26,11 @@ public void testTutorial() throws Exception { "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))" }); + setHibernateToolsExtensionSection( + "hibernateTools { \n" + + " useGenerics=false \n" + + "}" + ); createProject(); executeGradleCommand("generateJava"); verifyProject(); @@ -51,17 +56,4 @@ private void verifyProject() throws Exception { assertTrue(generatedItemJavaFileContents.contains("public class Item ")); } - protected void addHibernateToolsExtension(StringBuffer gradleBuildFileContents) { - int pos = gradleBuildFileContents.indexOf("dependencies {"); - pos = gradleBuildFileContents.indexOf("}", pos); - StringBuffer hibernateToolsExtension = new StringBuffer(); - hibernateToolsExtension - .append("\n") - .append("\n") - .append("hibernateTools { \n") - .append(" useGenerics=false \n") - .append("}"); - gradleBuildFileContents.insert(pos + 1, hibernateToolsExtension.toString()); - } - } diff --git a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/it/gradle/TestTemplate.java b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/it/gradle/TestTemplate.java index 098471455e..02186492fd 100644 --- a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/it/gradle/TestTemplate.java +++ b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/it/gradle/TestTemplate.java @@ -28,6 +28,7 @@ public class TestTemplate { private File databaseFile; private String[] databaseCreationScript; + private String hibernateToolsExtensionSection; protected File getProjectDir() { return projectDir; } protected File getGradlePropertiesFile() { return gradlePropertiesFile; } @@ -38,6 +39,8 @@ public class TestTemplate { protected void setDatabaseFile(File f) { databaseFile = f; } protected String[] getDatabaseCreationScript() { return databaseCreationScript; } protected void setDatabaseCreationScript(String[] script) { databaseCreationScript = script; } + protected String getHibernateToolsExtensionSection() { return hibernateToolsExtensionSection; } + protected void setHibernateToolsExtensionSection(String s) { hibernateToolsExtensionSection = s; } protected void executeGradleCommand(String ... gradleCommandLine) { GradleRunner runner = GradleRunner.create(); @@ -143,6 +146,14 @@ protected void addHibernateToolsPluginLine(StringBuffer gradleBuildFileContents) gradleBuildFileContents.insert(pos, constructHibernateToolsPluginLine() + "\n"); } - protected void addHibernateToolsExtension(StringBuffer gradleBuildFileContents) {} - + protected void addHibernateToolsExtension(StringBuffer gradleBuildFileContents) { + String extension = getHibernateToolsExtensionSection(); + if (extension != null) { + int pos = gradleBuildFileContents.indexOf("dependencies {"); + pos = gradleBuildFileContents.indexOf("}", pos); + gradleBuildFileContents.insert(pos + 1, "\n\n" + extension); + } + } } + +