From 6dcf578d7f9618003f578275d45aea5bcfd78d95 Mon Sep 17 00:00:00 2001 From: Koen Aers Date: Fri, 29 Aug 2025 17:31:24 +0200 Subject: [PATCH] HBX-3080: Refactor the Gradle integration tests to factor out common code - Create method 'executeGradleCommand(String...)' in class TestTemplate to execute Gradle command lines - Use above method in the 'TestTemplate#initGradleProject()' method - Replace the 'executeGenerateJavaTask()' methods in the different test classes using the above method Signed-off-by: Koen Aers --- .../tool/gradle/java/JpaDefaultTest.java | 12 +---------- .../tool/gradle/java/NoAnnotationsTest.java | 12 +---------- .../tool/gradle/java/NoGenerics.java | 12 +---------- .../tool/gradle/java/UseGenerics.java | 12 +---------- .../tool/gradle/tutorial/TutorialTest.java | 12 +---------- .../tool/it/gradle/TestTemplate.java | 21 ++++++++++++------- 6 files changed, 18 insertions(+), 63 deletions(-) diff --git a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/JpaDefaultTest.java b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/JpaDefaultTest.java index 7d93f2a374..2c73841557 100644 --- a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/JpaDefaultTest.java +++ b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/JpaDefaultTest.java @@ -27,20 +27,10 @@ public void testTutorial() throws Exception { "insert into PERSON values (1, 'foo')" }); createProject(); - executeGenerateJavaTask(); + executeGradleCommand("generateJava"); verifyProject(); } - private void executeGenerateJavaTask() throws Exception { - GradleRunner gradleRunner = GradleRunner.create(); - gradleRunner.forwardOutput(); - gradleRunner.withProjectDir(getProjectDir()); - gradleRunner.withPluginClasspath(); - gradleRunner.withArguments("generateJava"); - BuildResult buildResult = gradleRunner.build(); - assertTrue(buildResult.getOutput().contains("BUILD SUCCESSFUL")); - } - private void verifyProject() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "app/generated-sources"); assertTrue(generatedOutputFolder.exists()); 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 2f9bd16a12..f6d85cebf2 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 @@ -27,20 +27,10 @@ public void testTutorial() throws Exception { "insert into PERSON values (1, 'foo')" }); createProject(); - executeGenerateJavaTask(); + executeGradleCommand("generateJava"); verifyProject(); } - private void executeGenerateJavaTask() throws Exception { - GradleRunner gradleRunner = GradleRunner.create(); - gradleRunner.forwardOutput(); - gradleRunner.withProjectDir(getProjectDir()); - gradleRunner.withPluginClasspath(); - gradleRunner.withArguments("generateJava"); - BuildResult buildResult = gradleRunner.build(); - assertTrue(buildResult.getOutput().contains("BUILD SUCCESSFUL")); - } - private void verifyProject() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "app/generated-sources"); assertTrue(generatedOutputFolder.exists()); 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 4c50c9cfd1..9194455378 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 @@ -27,20 +27,10 @@ public void testTutorial() throws Exception { " primary key (ID), foreign key (OWNER_ID) references PERSON(ID))" }); createProject(); - executeGenerateJavaTask(); + executeGradleCommand("generateJava"); verifyProject(); } - private void executeGenerateJavaTask() throws Exception { - GradleRunner gradleRunner = GradleRunner.create(); - gradleRunner.forwardOutput(); - gradleRunner.withProjectDir(getProjectDir()); - gradleRunner.withPluginClasspath(); - gradleRunner.withArguments("generateJava"); - BuildResult buildResult = gradleRunner.build(); - assertTrue(buildResult.getOutput().contains("BUILD SUCCESSFUL")); - } - private void verifyProject() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "app/generated-sources"); assertTrue(generatedOutputFolder.exists()); diff --git a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/UseGenerics.java b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/UseGenerics.java index 5258dba729..a28baf535d 100644 --- a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/UseGenerics.java +++ b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/java/UseGenerics.java @@ -27,20 +27,10 @@ public void testTutorial() throws Exception { " primary key (ID), foreign key (OWNER_ID) references PERSON(ID))" }); createProject(); - executeGenerateJavaTask(); + executeGradleCommand("generateJava"); verifyProject(); } - private void executeGenerateJavaTask() throws Exception { - GradleRunner gradleRunner = GradleRunner.create(); - gradleRunner.forwardOutput(); - gradleRunner.withProjectDir(getProjectDir()); - gradleRunner.withPluginClasspath(); - gradleRunner.withArguments("generateJava"); - BuildResult buildResult = gradleRunner.build(); - assertTrue(buildResult.getOutput().contains("BUILD SUCCESSFUL")); - } - private void verifyProject() throws Exception { File generatedOutputFolder = new File(getProjectDir(), "app/generated-sources"); assertTrue(generatedOutputFolder.exists()); diff --git a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/tutorial/TutorialTest.java b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/tutorial/TutorialTest.java index eb29a25338..05790e3cea 100644 --- a/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/tutorial/TutorialTest.java +++ b/gradle/plugin/src/functionalTest/java/org/hibernate/tool/gradle/tutorial/TutorialTest.java @@ -27,20 +27,10 @@ public void testTutorial() throws Exception { "insert into PERSON values (1, 'foo')" }); createProject(); - executeGenerateJavaTask(); + executeGradleCommand("generateJava"); verifyProject(); } - private void executeGenerateJavaTask() throws Exception { - GradleRunner gradleRunner = GradleRunner.create(); - gradleRunner.forwardOutput(); - gradleRunner.withProjectDir(getProjectDir()); - gradleRunner.withPluginClasspath(); - gradleRunner.withArguments("generateJava"); - BuildResult buildResult = gradleRunner.build(); - assertTrue(buildResult.getOutput().contains("BUILD SUCCESSFUL")); - } - private void verifyProject() { File generatedOutputFolder = new File(getProjectDir(), "app/generated-sources"); assertTrue(generatedOutputFolder.exists()); 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 0a471d9e43..098471455e 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 @@ -17,8 +17,8 @@ public class TestTemplate { - protected static final List GRADLE_INIT_PROJECT_ARGUMENTS = List.of( - "init", "--type", "java-application", "--dsl", "groovy", "--test-framework", "junit-jupiter", "--java-version", "17"); + protected static final String[] GRADLE_INIT_PROJECT_ARGUMENTS = new String[] { + "init", "--type", "java-application", "--dsl", "groovy", "--test-framework", "junit-jupiter", "--java-version", "17"}; @TempDir private File projectDir; @@ -39,6 +39,16 @@ public class TestTemplate { protected String[] getDatabaseCreationScript() { return databaseCreationScript; } protected void setDatabaseCreationScript(String[] script) { databaseCreationScript = script; } + protected void executeGradleCommand(String ... gradleCommandLine) { + GradleRunner runner = GradleRunner.create(); + runner.withArguments(gradleCommandLine); + runner.forwardOutput(); + runner.withPluginClasspath(); + runner.withProjectDir(getProjectDir()); + BuildResult buildResult = runner.build(); + assertTrue(buildResult.getOutput().contains("BUILD SUCCESSFUL")); + } + protected void createProject() throws Exception { initGradleProject(); editGradleBuildFile(); @@ -48,12 +58,7 @@ protected void createProject() throws Exception { } protected void initGradleProject() throws Exception { - GradleRunner runner = GradleRunner.create(); - runner.withArguments(GRADLE_INIT_PROJECT_ARGUMENTS); - runner.forwardOutput(); - runner.withProjectDir(getProjectDir()); - BuildResult buildResult = runner.build(); - assertTrue(buildResult.getOutput().contains("BUILD SUCCESSFUL")); + executeGradleCommand(GRADLE_INIT_PROJECT_ARGUMENTS); setGradlePropertiesFile(new File(getProjectDir(), "gradle.properties")); assertTrue(getGradlePropertiesFile().exists()); assertTrue(getGradlePropertiesFile().isFile());