Skip to content

Commit f5068cb

Browse files
committed
HHH-19879: Move Hibernate Tools' reveng module to Hibernate ORM and merge the relevant ant/gradle/maven plugins
Signed-off-by: Koen Aers <koen.aers@gmail.com>
1 parent 3d9d05a commit f5068cb

File tree

15 files changed

+562
-181
lines changed

15 files changed

+562
-181
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.tool.gradle;
6+
7+
import static org.junit.jupiter.api.Assertions.assertNotNull;
8+
9+
import java.lang.reflect.Field;
10+
import java.util.HashMap;
11+
import java.util.Map;
12+
13+
import org.junit.jupiter.api.Test;
14+
15+
public class ExtensionTest {
16+
17+
@Test
18+
void testExtension() {
19+
Map<String, Field> extensionFieldMap = new HashMap<String, Field>();
20+
for(Field field : Extension.class.getDeclaredFields()) {
21+
extensionFieldMap.put(field.getName(), field);
22+
}
23+
assertNotNull(extensionFieldMap.get("sqlToRun"));
24+
}
25+
26+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.tool.gradle;
6+
7+
import org.gradle.testfixtures.ProjectBuilder;
8+
import org.gradle.api.Project;
9+
import org.junit.jupiter.api.Test;
10+
import static org.junit.jupiter.api.Assertions.*;
11+
12+
class PluginTest {
13+
14+
@Test
15+
void testApply() {
16+
// Create a test project and apply the plugin
17+
Project project = ProjectBuilder.builder().build();
18+
project.getPlugins().apply("org.hibernate.tool.hibernate-tools-gradle");
19+
20+
// Verify the result
21+
assertNotNull(project.getTasks().findByName("generateJava"));
22+
assertNotNull(project.getTasks().findByName("runSql"));
23+
24+
Object extension = project.getExtensions().getByName("hibernateTools");
25+
assertNotNull(extension);
26+
assertTrue(extension instanceof Extension);
27+
}
28+
29+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.tool.gradle.task;
6+
7+
import static org.junit.jupiter.api.Assertions.assertNotNull;
8+
import static org.junit.jupiter.api.Assertions.assertNotSame;
9+
import static org.junit.jupiter.api.Assertions.assertNull;
10+
import static org.junit.jupiter.api.Assertions.assertSame;
11+
import static org.junit.jupiter.api.Assertions.assertTrue;
12+
13+
import java.lang.reflect.Field;
14+
import java.net.URL;
15+
16+
import org.gradle.api.Project;
17+
import org.gradle.testfixtures.ProjectBuilder;
18+
import org.hibernate.tool.reveng.api.core.RevengStrategy;
19+
import org.hibernate.tool.gradle.Extension;
20+
import org.hibernate.tool.reveng.internal.core.strategy.AbstractStrategy;
21+
import org.junit.jupiter.api.BeforeEach;
22+
import org.junit.jupiter.api.Test;
23+
24+
public class AbstractTaskTest {
25+
26+
private static ClassLoader USED_CLASS_LOADER;
27+
private static URL[] URLS = new URL[] {};
28+
29+
private AbstractTask abstractTask = null;
30+
31+
private Field extensionField = null;
32+
private Extension extension = null;
33+
34+
@BeforeEach
35+
void beforeEach() throws Exception {
36+
USED_CLASS_LOADER = null;
37+
Project project = ProjectBuilder.builder().build();
38+
abstractTask = project.getTasks().create("foo", FooTask.class);
39+
extensionField = AbstractTask.class.getDeclaredField("extension");
40+
extensionField.setAccessible(true);
41+
extension = new Extension(project);
42+
}
43+
44+
@Test
45+
void testInitialize() throws Exception {
46+
assertNull(extensionField.get(abstractTask));
47+
abstractTask.initialize(extension);
48+
assertSame(extension, extensionField.get(abstractTask));
49+
}
50+
51+
@Test
52+
void testGetExtension() throws Exception {
53+
assertNull(abstractTask.getExtension());
54+
extensionField.set(abstractTask, extension);
55+
assertSame(extension, abstractTask.getExtension());
56+
}
57+
58+
@Test
59+
void testPerform() {
60+
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
61+
assertNull(USED_CLASS_LOADER);
62+
abstractTask.perform();
63+
assertNotNull(USED_CLASS_LOADER);
64+
assertNotSame(contextClassLoader, USED_CLASS_LOADER);
65+
}
66+
67+
@Test
68+
void testResolveProjectClassPath() {
69+
assertSame(URLS, abstractTask.resolveProjectClassPath());
70+
}
71+
72+
@Test
73+
public void testSetupReverseEngineeringStrategy() throws Exception {
74+
extension.revengStrategy = FooStrategy.class.getName();
75+
extensionField.set(abstractTask, extension);
76+
RevengStrategy revengStrategy = abstractTask.setupReverseEngineeringStrategy();
77+
assertTrue(revengStrategy instanceof FooStrategy);
78+
}
79+
80+
public static class FooStrategy extends AbstractStrategy {}
81+
82+
public static class FooTask extends AbstractTask {
83+
void doWork() {
84+
USED_CLASS_LOADER = Thread.currentThread().getContextClassLoader();
85+
}
86+
URL[] resolveProjectClassPath() {
87+
return URLS;
88+
}
89+
}
90+
91+
}

0 commit comments

Comments
 (0)