Skip to content

Commit 433b247

Browse files
committed
HBX-3068: Refactor the Ant integration tests to factor out common code
- Add method 'createProjectAndBuild()' to TestTemplate to factor out creation of build.xml, database and hibernate.properties and run the ant build. - Collapse the respective 'verifyResult()' methods straight into the test - Create 'assertFolderExists(...)' and 'assertFileExists(...)' methods in TestTemplate to factor out some common verifications Signed-off-by: Koen Aers <[email protected]>
1 parent b051aa6 commit 433b247

File tree

6 files changed

+47
-55
lines changed

6 files changed

+47
-55
lines changed

ant/src/it/java/org/hibernate/tool/ant/hbm2java/JpaDefaultTestIT.java

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,12 @@ public void testJpaDefault() throws Exception {
2222
setDatabaseCreationScript(new String[] {
2323
"create table PERSON (ID int not null, NAME varchar(20), primary key (ID))"
2424
});
25-
createBuildXmlFile();
26-
createDatabase();
27-
createHibernatePropertiesFile();
28-
runAntBuild();
29-
verifyResult();
30-
}
31-
32-
private void verifyResult() throws Exception {
33-
File generatedOutputFolder = new File(getProjectDir(), "generated");
34-
assertTrue(generatedOutputFolder.exists());
35-
assertTrue(generatedOutputFolder.isDirectory());
36-
assertEquals(1, generatedOutputFolder.list().length);
37-
File generatedPersonJavaFile = new File(generatedOutputFolder, "Person.java");
38-
assertTrue(generatedPersonJavaFile.exists());
39-
assertTrue(generatedPersonJavaFile.isFile());
40-
String generatedPersonJavaFileContents = new String(
41-
Files.readAllBytes(generatedPersonJavaFile.toPath()));
25+
createProjectAndBuild();
26+
assertFolderExists("generated", 1);
27+
assertFileExists("generated/Person.java");
28+
String generatedPersonJavaFileContents = getFileContents("generated/Person.java");
4229
assertTrue(generatedPersonJavaFileContents.contains("import jakarta.persistence.Entity;"));
4330
assertTrue(generatedPersonJavaFileContents.contains("public class Person "));
44-
}
45-
31+
}
32+
4633
}

ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoAnnotationsTestIT.java

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,12 @@ public void testNoAnnotations() throws Exception {
2323
setDatabaseCreationScript(new String[] {
2424
"create table PERSON (ID int not null, NAME varchar(20), primary key (ID))"
2525
});
26-
createBuildXmlFile();
27-
createDatabase();
28-
createHibernatePropertiesFile();
29-
runAntBuild();
30-
verifyResult();
31-
}
32-
33-
private void verifyResult() throws Exception {
34-
File generatedOutputFolder = new File(getProjectDir(), "generated");
35-
assertTrue(generatedOutputFolder.exists());
36-
assertTrue(generatedOutputFolder.isDirectory());
37-
assertEquals(1, generatedOutputFolder.list().length);
38-
File generatedPersonJavaFile = new File(generatedOutputFolder, "Person.java");
39-
assertTrue(generatedPersonJavaFile.exists());
40-
assertTrue(generatedPersonJavaFile.isFile());
41-
String generatedPersonJavaFileContents = new String(
42-
Files.readAllBytes(generatedPersonJavaFile.toPath()));
26+
createProjectAndBuild();
27+
assertFolderExists("generated", 1);
28+
assertFileExists("generated/Person.java");
29+
String generatedPersonJavaFileContents = getFileContents("generated/Person.java");
4330
assertFalse(generatedPersonJavaFileContents.contains("import jakarta.persistence.Entity;"));
4431
assertTrue(generatedPersonJavaFileContents.contains("public class Person "));
45-
}
46-
32+
}
33+
4734
}

ant/src/it/java/org/hibernate/tool/ant/hbm2java/NoGenericsTestIT.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@ public void testUseGenerics() throws Exception {
2626
"create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " +
2727
"primary key (ID), foreign key (OWNER_ID) references PERSON(ID))"
2828
});
29-
createBuildXmlFile();
30-
createDatabase();
31-
createHibernatePropertiesFile();
32-
runAntBuild();
29+
createProjectAndBuild();
3330
verifyResult();
3431
}
3532

ant/src/it/java/org/hibernate/tool/ant/hbm2java/UseGenericsTestIT.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,7 @@ public void testUseGenerics() throws Exception {
2525
"create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " +
2626
"primary key (ID), foreign key (OWNER_ID) references PERSON(ID))"
2727
});
28-
createBuildXmlFile();
29-
createDatabase();
30-
createHibernatePropertiesFile();
31-
runAntBuild();
28+
createProjectAndBuild();
3229
verifyResult();
3330
}
3431

ant/src/it/java/org/hibernate/tool/ant/tutorial/TutorialTestIT.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@ public void testTutorial() throws Exception {
2222
setDatabaseCreationScript(new String[] {
2323
"create table PERSON (ID int not null, NAME varchar(20), primary key (ID))"
2424
});
25-
createBuildXmlFile();
26-
createDatabase();
27-
createHibernatePropertiesFile();
28-
runAntBuild();
25+
createProjectAndBuild();
2926
verifyResult();
3027
}
3128

ant/src/it/java/org/hibernate/tool/it/ant/TestTemplate.java

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.sql.Connection;
1111
import java.sql.DriverManager;
1212
import java.sql.Statement;
13+
import java.util.Objects;
1314

1415
import static org.junit.jupiter.api.Assertions.*;
1516

@@ -38,7 +39,33 @@ protected String constructBuildXmlFileContents() {
3839
return buildXmlFileContents.replace("@hibernateToolTaskXml@", hibernateToolTaskXml);
3940
}
4041

41-
protected void runAntBuild() {
42+
protected String getFileContents(String path) throws Exception {
43+
return new String(
44+
Files.readAllBytes(
45+
new File(getProjectDir(), path).toPath()));
46+
}
47+
48+
protected void createProjectAndBuild() throws Exception {
49+
createBuildXmlFile();
50+
createDatabase();
51+
createHibernatePropertiesFile();
52+
runAntBuild();
53+
}
54+
55+
protected void assertFolderExists(String path, int amountOfChildren) {
56+
File generatedOutputFolder = new File(getProjectDir(), path);
57+
assertTrue(generatedOutputFolder.exists());
58+
assertTrue(generatedOutputFolder.isDirectory());
59+
assertEquals(amountOfChildren, Objects.requireNonNull(generatedOutputFolder.list()).length);
60+
}
61+
62+
protected void assertFileExists(String path) {
63+
File generatedPersonJavaFile = new File(getProjectDir(), path);
64+
assertTrue(generatedPersonJavaFile.exists());
65+
assertTrue(generatedPersonJavaFile.isFile());
66+
}
67+
68+
private void runAntBuild() {
4269
File buildXmlFile = new File(getProjectDir(), "build.xml");
4370
Project project = new Project();
4471
project.setBaseDir(getProjectDir());
@@ -47,18 +74,18 @@ protected void runAntBuild() {
4774
project.executeTarget(project.getDefaultTarget());
4875
}
4976

50-
protected void createBuildXmlFile() throws Exception {
77+
private void createBuildXmlFile() throws Exception {
5178
File buildXmlFile = new File(getProjectDir(), "build.xml");
5279
assertFalse(buildXmlFile.exists());
5380
Files.writeString(buildXmlFile.toPath(), constructBuildXmlFileContents());
5481
assertTrue(buildXmlFile.exists());
5582
}
5683

57-
protected String constructJdbcConnectionString() {
84+
private String constructJdbcConnectionString() {
5885
return "jdbc:h2:" + getProjectDir().getAbsolutePath() + "/database/test;AUTO_SERVER=TRUE";
5986
}
6087

61-
protected void createDatabase() throws Exception {
88+
private void createDatabase() throws Exception {
6289
File databaseFile = new File(getProjectDir(), "database/test.mv.db");
6390
assertFalse(databaseFile.exists());
6491
assertFalse(databaseFile.isFile());
@@ -73,7 +100,7 @@ protected void createDatabase() throws Exception {
73100
assertTrue(databaseFile.isFile());
74101
}
75102

76-
protected void createHibernatePropertiesFile() throws Exception {
103+
private void createHibernatePropertiesFile() throws Exception {
77104
File hibernatePropertiesFile = new File(getProjectDir(), "hibernate.properties");
78105
String hibernatePropertiesFileContents =
79106
"hibernate.connection.driver_class=org.h2.Driver\n" +

0 commit comments

Comments
 (0)