44import static org .junit .jupiter .api .Assertions .assertTrue ;
55
66import java .io .File ;
7- import java .io .FileWriter ;
87import java .lang .reflect .Field ;
98import java .nio .file .Files ;
109import java .sql .DriverManager ;
10+ import java .util .Properties ;
1111
1212import org .apache .maven .project .MavenProject ;
13+ import org .hibernate .tool .api .metadata .MetadataDescriptor ;
14+ import org .hibernate .tool .api .metadata .MetadataDescriptorFactory ;
1315import org .junit .jupiter .api .AfterEach ;
1416import org .junit .jupiter .api .BeforeEach ;
1517import org .junit .jupiter .api .Test ;
@@ -32,7 +34,6 @@ public class GenerateJavaMojoTest {
3234 @ BeforeEach
3335 public void beforeEach () throws Exception {
3436 createDatabase ();
35- createPropertiesFile ();
3637 createOutputDirectory ();
3738 createGenerateJavaMojo ();
3839 }
@@ -48,7 +49,7 @@ public void testGenerateAnnotatedJava() throws Exception {
4849 // Person.java should not exist
4950 assertFalse (personJavaFile .exists ());
5051 // Execute mojo with default value of 'ejb3' field which is 'true'
51- generateJavaMojo .execute ( );
52+ generateJavaMojo .executeExporter ( createMetadataDescriptor () );
5253 // Person.java should exist
5354 assertTrue (personJavaFile .exists ());
5455 // Person.java should be an annotated entity
@@ -65,7 +66,7 @@ public void testGenerateNonAnnotatedJava() throws Exception {
6566 Field ejb3Field = GenerateJavaMojo .class .getDeclaredField ("ejb3" );
6667 ejb3Field .setAccessible (true );
6768 ejb3Field .set (generateJavaMojo , false );
68- generateJavaMojo .execute ( );
69+ generateJavaMojo .executeExporter ( createMetadataDescriptor () );
6970 // Person.java should exist
7071 assertTrue (personJavaFile .exists ());
7172 // Person.java should be an annotated entity
@@ -87,15 +88,6 @@ private void dropDatabase() throws Exception {
8788 .execute (DROP_PERSON_TABLE );
8889 }
8990
90- private void createPropertiesFile () throws Exception {
91- File propertiesFile = new File (tempDir , "hibernate.properties" );
92- try (FileWriter fileWriter = new FileWriter (propertiesFile )) {
93- fileWriter .write ("hibernate.connection.url=" + JDBC_CONNECTION + '\n' );
94- fileWriter .write ("hibernate.default_catalog=TEST\n " );
95- fileWriter .write ("hibernate.default_schema=PUBLIC\n " );
96- }
97- }
98-
9991 private void createGenerateJavaMojo () throws Exception {
10092 generateJavaMojo = new GenerateJavaMojo ();
10193 Field projectField = AbstractGenerationMojo .class .getDeclaredField ("project" );
@@ -114,5 +106,18 @@ private void createOutputDirectory() {
114106 outputDirectory .mkdir ();
115107 }
116108
109+ private MetadataDescriptor createMetadataDescriptor () {
110+ return MetadataDescriptorFactory .createReverseEngineeringDescriptor (
111+ null ,
112+ createProperties ());
113+ }
114+
115+ private Properties createProperties () {
116+ Properties result = new Properties ();
117+ result .put ("hibernate.connection.url" , JDBC_CONNECTION );
118+ result .put ("hibernate.default_catalog" , "TEST" );
119+ result .put ("hibernate.default_schema" , "PUBLIC" );
120+ return result ;
121+ }
117122
118123}
0 commit comments