Skip to content

Commit 9ec7d97

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 1b7e7d4 commit 9ec7d97

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
@@ -24,25 +24,12 @@ public void testJpaDefault() throws Exception {
2424
setDatabaseCreationScript(new String[] {
2525
"create table PERSON (ID int not null, NAME varchar(20), primary key (ID))"
2626
});
27-
createBuildXmlFile();
28-
createDatabase();
29-
createHibernatePropertiesFile();
30-
runAntBuild();
31-
verifyResult();
32-
}
33-
34-
private void verifyResult() throws Exception {
35-
File generatedOutputFolder = new File(getProjectDir(), "generated");
36-
assertTrue(generatedOutputFolder.exists());
37-
assertTrue(generatedOutputFolder.isDirectory());
38-
assertEquals(1, generatedOutputFolder.list().length);
39-
File generatedPersonJavaFile = new File(generatedOutputFolder, "Person.java");
40-
assertTrue(generatedPersonJavaFile.exists());
41-
assertTrue(generatedPersonJavaFile.isFile());
42-
String generatedPersonJavaFileContents = new String(
43-
Files.readAllBytes(generatedPersonJavaFile.toPath()));
27+
createProjectAndBuild();
28+
assertFolderExists("generated", 1);
29+
assertFileExists("generated/Person.java");
30+
String generatedPersonJavaFileContents = getFileContents("generated/Person.java");
4431
assertTrue(generatedPersonJavaFileContents.contains("import jakarta.persistence.Entity;"));
4532
assertTrue(generatedPersonJavaFileContents.contains("public class Person "));
46-
}
47-
33+
}
34+
4835
}

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
@@ -25,25 +25,12 @@ public void testNoAnnotations() throws Exception {
2525
setDatabaseCreationScript(new String[] {
2626
"create table PERSON (ID int not null, NAME varchar(20), primary key (ID))"
2727
});
28-
createBuildXmlFile();
29-
createDatabase();
30-
createHibernatePropertiesFile();
31-
runAntBuild();
32-
verifyResult();
33-
}
34-
35-
private void verifyResult() throws Exception {
36-
File generatedOutputFolder = new File(getProjectDir(), "generated");
37-
assertTrue(generatedOutputFolder.exists());
38-
assertTrue(generatedOutputFolder.isDirectory());
39-
assertEquals(1, generatedOutputFolder.list().length);
40-
File generatedPersonJavaFile = new File(generatedOutputFolder, "Person.java");
41-
assertTrue(generatedPersonJavaFile.exists());
42-
assertTrue(generatedPersonJavaFile.isFile());
43-
String generatedPersonJavaFileContents = new String(
44-
Files.readAllBytes(generatedPersonJavaFile.toPath()));
28+
createProjectAndBuild();
29+
assertFolderExists("generated", 1);
30+
assertFileExists("generated/Person.java");
31+
String generatedPersonJavaFileContents = getFileContents("generated/Person.java");
4532
assertFalse(generatedPersonJavaFileContents.contains("import jakarta.persistence.Entity;"));
4633
assertTrue(generatedPersonJavaFileContents.contains("public class Person "));
47-
}
48-
34+
}
35+
4936
}

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
@@ -28,10 +28,7 @@ public void testUseGenerics() throws Exception {
2828
"create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " +
2929
"primary key (ID), foreign key (OWNER_ID) references PERSON(ID))"
3030
});
31-
createBuildXmlFile();
32-
createDatabase();
33-
createHibernatePropertiesFile();
34-
runAntBuild();
31+
createProjectAndBuild();
3532
verifyResult();
3633
}
3734

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
@@ -27,10 +27,7 @@ public void testUseGenerics() throws Exception {
2727
"create table ITEM (ID int not null, NAME varchar(20), OWNER_ID int not null, " +
2828
"primary key (ID), foreign key (OWNER_ID) references PERSON(ID))"
2929
});
30-
createBuildXmlFile();
31-
createDatabase();
32-
createHibernatePropertiesFile();
33-
runAntBuild();
30+
createProjectAndBuild();
3431
verifyResult();
3532
}
3633

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
@@ -24,10 +24,7 @@ public void testTutorial() throws Exception {
2424
setDatabaseCreationScript(new String[] {
2525
"create table PERSON (ID int not null, NAME varchar(20), primary key (ID))"
2626
});
27-
createBuildXmlFile();
28-
createDatabase();
29-
createHibernatePropertiesFile();
30-
runAntBuild();
27+
createProjectAndBuild();
3128
verifyResult();
3229
}
3330

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)