Author: max.andersen(a)jboss.com
Date: 2007-08-20 07:21:32 -0400 (Mon, 20 Aug 2007)
New Revision: 13941
Added:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaInitializationTest.java
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/BaseTestCase.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Article.hbm.xml
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaEjb3Test.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/query/QueryAllTests.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbmlint/HbmLintAllTests.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/CompletionAllTests.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/Jdbc2CfgAllTests.java
Log:
HBX-825 Circular dependency between POJO source generation and Comparator class
compilation
HBX-826 Code generator: sortedset are not instantiated by default
HBX-973 ClassCastException: hbm2java generates HashSet instead of TreeSet when <set
.... sort="MySorter"> is defined.
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/BaseTestCase.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/BaseTestCase.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/BaseTestCase.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -55,7 +55,7 @@
assertNoTables();
}
- private void cleanupOutputDir() {
+ protected void cleanupOutputDir() {
if (getOutputDir()!=null) TestHelper.deleteDir(getOutputDir());
}
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Article.hbm.xml
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Article.hbm.xml 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Article.hbm.xml 2007-08-20
11:21:32 UTC (rev 13941)
@@ -64,7 +64,27 @@
<list-index/>
<one-to-many class="Article"/>
</list>
-
- </class>
+ <set name="sortedArticlesSet" inverse="true"
+ sort="comparator.NoopComparator">
+ <key column="idx"/>
+ <one-to-many class="Article" />
+ </set>
+
+ <map name="sortedArticlesMap" inverse="true"
+ sort="comparator.NoopComparator">
+ <key column="idx"/>
+ <map-key type="string"/>
+ <one-to-many class="Article" />
+ </map>
+
+ <map name="naturalSortedArticlesMap" inverse="true"
+ sort="natural">
+ <key column="idx"/>
+ <map-key type="string"/>
+ <one-to-many class="Article" />
+ </map>
+
+ </class>
+
</hibernate-mapping>
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaEjb3Test.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaEjb3Test.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaEjb3Test.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -5,6 +5,8 @@
package org.hibernate.tool.hbm2x;
import java.io.File;
+import java.io.FileWriter;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
@@ -30,6 +32,28 @@
protected void setUp() throws Exception {
super.setUp();
+ File file = new File(getOutputDir().getAbsolutePath() +
"/comparator/NoopComparator.java");
+ file.getParentFile().mkdirs();
+
+ FileWriter fileWriter = new FileWriter(file);
+ PrintWriter pw = new PrintWriter(fileWriter);
+
+ pw.println("package comparator;");
+
+ pw.println("import java.util.Comparator;");
+
+ pw.println("public class NoopComparator implements Comparator {\n" +
+ "\n" +
+ " public int compare(Object o1, Object o2) {\n" +
+ " return 0;\n" +
+ " }\n" +
+ "\n" +
+ " }\n" +
+ "");
+
+ pw.flush();
+ pw.close();
+
POJOExporter exporter = new POJOExporter(getCfg(), getOutputDir() );
exporter.setTemplatePath(new String[0]);
exporter.getProperties().setProperty("ejb3", "true");
@@ -84,41 +108,7 @@
}
-
- public void testFieldInitializationAndTypeNames() {
- PersistentClass classMapping =
getCfg().getClassMapping("org.hibernate.tool.hbm2x.Article");
- Cfg2JavaTool cfg2java = new Cfg2JavaTool();
- POJOClass clazz = cfg2java.getPOJOClass(classMapping);
-
- Property p = classMapping.getProperty("AMap");
-
- assertEquals("all types should be fully qualified when no
importcontext","java.util.Map<java.lang.String,org.hibernate.tool.hbm2x.Article>",cfg2java.getJavaTypeName(p,
true));
- assertEquals("Map<String,Article>",cfg2java.getJavaTypeName(p, true,
clazz));
- assertEquals("new HashMap<String,Article>(0)",
clazz.getFieldInitialization(p, true));
- assertEquals("new HashMap(0)", clazz.getFieldInitialization(p, false));
-
- p = classMapping.getProperty("aList");
-
- assertEquals("lists should not have the index visible in the declaration",
"List<Article>",cfg2java.getJavaTypeName(p, true, clazz));
- assertEquals("all types should be fully qualified when no
importcontext","java.util.List<org.hibernate.tool.hbm2x.Article>",cfg2java.getJavaTypeName(p,
true));
-
- assertEquals("new ArrayList<Article>(0)",
clazz.getFieldInitialization(p, true));
- assertEquals("new ArrayList(0)", clazz.getFieldInitialization(p, false));
-
- p = classMapping.getProperty("content");
- assertEquals("\"what can I say\"",clazz.getFieldInitialization(p,
false));
-
- p = classMapping.getProperty("bagarticles");
-
- assertEquals("Should be a list via property-type",
"java.util.List", cfg2java.getJavaTypeName( p, false ));
- assertEquals("Should be a a generic'd list when generics=true",
"java.util.List<org.hibernate.tool.hbm2x.Article>",
cfg2java.getJavaTypeName( p, true ));
- assertEquals("List<Article>",cfg2java.getJavaTypeName(p, true,
clazz));
- assertEquals("new ArrayList<Article>(0)",
clazz.getFieldInitialization(p, true));
- assertEquals("new ArrayList(0)", clazz.getFieldInitialization(p, false));
-
- }
-
public void testAnnotationColumnDefaults() {
PersistentClass classMapping =
getCfg().getClassMapping("org.hibernate.tool.hbm2x.Article");
Cfg2JavaTool cfg2java = new Cfg2JavaTool();
Added:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaInitializationTest.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaInitializationTest.java
(rev 0)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaInitializationTest.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -0,0 +1,123 @@
+/*
+ * Created on 2004-12-01
+ *
+ */
+package org.hibernate.tool.hbm2x;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hibernate.mapping.PersistentClass;
+import org.hibernate.mapping.Property;
+import org.hibernate.tool.NonReflectiveTestCase;
+import org.hibernate.tool.hbm2x.pojo.AnnotationBuilder;
+import org.hibernate.tool.hbm2x.pojo.EntityPOJOClass;
+import org.hibernate.tool.hbm2x.pojo.ImportContextImpl;
+import org.hibernate.tool.hbm2x.pojo.NoopImportContext;
+import org.hibernate.tool.hbm2x.pojo.POJOClass;
+import org.hibernate.tool.hbm2x.pojo.EntityPOJOClass.IteratorTransformer;
+import org.hibernate.tool.test.TestHelper;
+
+/**
+ * @author max
+ *
+ */
+public class Hbm2JavaInitializationTest extends NonReflectiveTestCase {
+
+ public Hbm2JavaInitializationTest(String name) {
+ super( name, "hbm2inittest" );
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ }
+
+ protected void tearDown() throws Exception {
+ cleanupOutputDir();
+ }
+
+
+
+
+ public void testFieldInitializationAndTypeNames() {
+ PersistentClass classMapping =
getCfg().getClassMapping("org.hibernate.tool.hbm2x.Article");
+ Cfg2JavaTool cfg2java = new Cfg2JavaTool();
+ POJOClass clazz = cfg2java.getPOJOClass(classMapping);
+
+ Property p = classMapping.getProperty("AMap");
+
+ assertEquals("all types should be fully qualified when no
importcontext","java.util.Map<java.lang.String,org.hibernate.tool.hbm2x.Article>",cfg2java.getJavaTypeName(p,
true));
+ assertEquals("Map<String,Article>",cfg2java.getJavaTypeName(p, true,
clazz));
+ assertEquals("new HashMap<String,Article>(0)",
clazz.getFieldInitialization(p, true));
+ assertEquals("new HashMap(0)", clazz.getFieldInitialization(p, false));
+
+ p = classMapping.getProperty("aList");
+
+ assertEquals("lists should not have the index visible in the declaration",
"List<Article>",cfg2java.getJavaTypeName(p, true, clazz));
+ assertEquals("all types should be fully qualified when no
importcontext","java.util.List<org.hibernate.tool.hbm2x.Article>",cfg2java.getJavaTypeName(p,
true));
+
+ assertEquals("new ArrayList<Article>(0)",
clazz.getFieldInitialization(p, true));
+ assertEquals("new ArrayList(0)", clazz.getFieldInitialization(p, false));
+
+ p = classMapping.getProperty("content");
+ assertEquals("\"what can I say\"",clazz.getFieldInitialization(p,
false));
+
+ p = classMapping.getProperty("bagarticles");
+
+ assertEquals("Should be a list via property-type",
"java.util.List", cfg2java.getJavaTypeName( p, false ));
+ assertEquals("Should be a a generic'd list when generics=true",
"java.util.List<org.hibernate.tool.hbm2x.Article>",
cfg2java.getJavaTypeName( p, true ));
+ assertEquals("List<Article>",cfg2java.getJavaTypeName(p, true,
clazz));
+ assertEquals("new ArrayList<Article>(0)",
clazz.getFieldInitialization(p, true));
+ assertEquals("new ArrayList(0)", clazz.getFieldInitialization(p, false));
+
+ p = classMapping.getProperty("naturalSortedArticlesMap");
+
+ assertEquals("java.util.SortedMap", cfg2java.getJavaTypeName( p, false));
+ assertEquals("SortedMap<String,Article>", cfg2java.getJavaTypeName( p,
true, new ImportContextImpl("") ));
+ assertEquals("new TreeMap<String,Article>()",
clazz.getFieldInitialization(p, true));
+ assertEquals("new TreeMap()", clazz.getFieldInitialization(p, false));
+
+ p = classMapping.getProperty("sortedArticlesMap");
+
+ assertEquals("java.util.SortedMap", cfg2java.getJavaTypeName( p, false));
+ assertEquals("SortedMap<String,Article>", cfg2java.getJavaTypeName( p,
true, new ImportContextImpl("") ));
+
+ assertFalse(clazz.generateImports().contains("import
comparator.NoopComparator;"));
+ assertEquals("new TreeMap(new NoopComparator())",
clazz.getFieldInitialization(p, false));
+ assertTrue(clazz.generateImports().contains("import
comparator.NoopComparator;"));
+
+ assertEquals("new TreeMap<String,Article>(new NoopComparator())",
clazz.getFieldInitialization(p, true));
+
+ p = classMapping.getProperty("sortedArticlesSet");
+
+ assertEquals("java.util.SortedSet", cfg2java.getJavaTypeName( p, false));
+ assertEquals("SortedSet<Article>", cfg2java.getJavaTypeName( p, true,
new ImportContextImpl("") ));
+ assertEquals("new TreeSet<Article>(new NoopComparator())",
clazz.getFieldInitialization(p, true));
+
+ }
+
+
+
+
+
+ protected String getBaseForMappings() {
+ return "org/hibernate/tool/hbm2x/";
+ }
+
+ protected String[] getMappings() {
+ return new String[] {
+ "Author.hbm.xml",
+ "Article.hbm.xml",
+ "Train.hbm.xml",
+ "Passenger.hbm.xml"
+// "GenericModel.hbm.xml",
+// "Customer.hbm.xml",
+// "Order.hbm.xml",
+// "LineItem.hbm.xml",
+// "Product.hbm.xml"
+ };
+ }
+
+}
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -92,7 +92,7 @@
assertEquals("test", findFirstString("testParent", file));
}
- public void testNoVelocityLeftOvers() {
+ public void testNoFreeMarkerLeftOvers() {
assertEquals( null, findFirstString( "$", new File( getOutputDir(),
"org/hibernate/tool/hbm2x/Customer.java" ) ) );
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2XAllTests.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -6,25 +6,29 @@
public class Hbm2XAllTests {
public static Test suite() {
- TestSuite suite = new TestSuite( "Test for org.hibernate.tool.hbm2x" );
+ TestSuite suite = new TestSuite("Test for org.hibernate.tool.hbm2x");
//$JUnit-BEGIN$
- suite.addTestSuite( Hbm2JavaConstructorTest.class );
+ suite.addTestSuite(PropertiesTest.class);
+ suite.addTestSuite(Hbm2CfgTest.class);
+ suite.addTestSuite(Hbm2DaoTest.class);
+ suite.addTestSuite(OtherCfg2HbmTest.class);
+ suite.addTestSuite(Hbm2JavaConstructorTest.class);
+ suite.addTestSuite(CachedMetaDataTest.class);
+ suite.addTestSuite(GenerateFromJDBCTest.class);
+ suite.addTestSuite(Hbm2JavaInitializationTest.class);
+ suite.addTestSuite(Hbm2HibernateDAOTest.class);
+ suite.addTestSuite(DefaultSchemaCatalogTest.class);
+ suite.addTestSuite(HashcodeEqualsTest.class);
+ suite.addTestSuite(JdbcHbm2JavaEjb3Test.class);
+ suite.addTestSuite(DocExporterTest.class);
+ suite.addTestSuite(Hbm2EJBDaoTest.class);
suite
- .addTestSuite( Hbm2JavaBidirectionalIndexedCollectionMappingTest.class );
- suite.addTestSuite( Hbm2JavaTest.class );
- suite.addTestSuite( DefaultSchemaCatalogTest.class );
- suite.addTestSuite( GenerateFromJDBCTest.class );
- suite.addTestSuite( HashcodeEqualsTest.class );
- suite.addTestSuite( Hbm2DaoTest.class );
- suite.addTestSuite( XMLPrettyPrinterTest.class );
- suite.addTestSuite( Hbm2JavaEjb3Test.class );
- suite.addTestSuite( OtherCfg2HbmTest.class );
- suite.addTestSuite( Hbm2EJBDaoTest.class );
- suite.addTestSuite( Hbm2CfgTest.class );
- suite.addTestSuite( GenericExporterTest.class );
- suite.addTestSuite( Hbm2HibernateDAOTest.class );
- suite.addTestSuite( DocExporterTest.class );
- suite.addTestSuite( PropertiesTest.class );
+ .addTestSuite(Hbm2JavaBidirectionalIndexedCollectionMappingTest.class);
+ suite.addTestSuite(IncrementalSchemaReadingTest.class);
+ suite.addTestSuite(Hbm2JavaEjb3Test.class);
+ suite.addTestSuite(XMLPrettyPrinterTest.class);
+ suite.addTestSuite(GenericExporterTest.class);
+ suite.addTestSuite(Hbm2JavaTest.class);
//$JUnit-END$
return suite;
}
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/query/QueryAllTests.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/query/QueryAllTests.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/query/QueryAllTests.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -7,9 +7,9 @@
public static Test suite() {
TestSuite suite = new TestSuite(
- "Test for org.hibernate.tool.hbm2x.query" );
+ "Test for org.hibernate.tool.hbm2x.query");
//$JUnit-BEGIN$
- suite.addTestSuite( QueryExporterTest.class );
+ suite.addTestSuite(QueryExporterTest.class);
//$JUnit-END$
return suite;
}
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbmlint/HbmLintAllTests.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbmlint/HbmLintAllTests.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbmlint/HbmLintAllTests.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -6,10 +6,10 @@
public class HbmLintAllTests {
public static Test suite() {
- TestSuite suite = new TestSuite( "Test for org.hibernate.tool.hbmlint" );
+ TestSuite suite = new TestSuite("Test for org.hibernate.tool.hbmlint");
//$JUnit-BEGIN$
- suite.addTestSuite( HbmLintTest.class );
- suite.addTestSuite( SchemaAnalyzerTest.class );
+ suite.addTestSuite(SchemaAnalyzerTest.class);
+ suite.addTestSuite(HbmLintTest.class);
//$JUnit-END$
return suite;
}
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/CompletionAllTests.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/CompletionAllTests.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/CompletionAllTests.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -7,11 +7,11 @@
public static Test suite() {
TestSuite suite = new TestSuite(
- "Test for org.hibernate.tool.ide.completion" );
+ "Test for org.hibernate.tool.ide.completion");
//$JUnit-BEGIN$
- suite.addTestSuite( CompletionHelperTest.class );
- suite.addTestSuite( HqlAnalyzerTest.class );
- suite.addTestSuite( ModelCompletionTest.class );
+ suite.addTestSuite(CompletionHelperTest.class);
+ suite.addTestSuite(HqlAnalyzerTest.class);
+ suite.addTestSuite(ModelCompletionTest.class);
//$JUnit-END$
return suite;
}
Modified:
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/Jdbc2CfgAllTests.java
===================================================================
---
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/Jdbc2CfgAllTests.java 2007-08-20
10:07:02 UTC (rev 13940)
+++
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/Jdbc2CfgAllTests.java 2007-08-20
11:21:32 UTC (rev 13941)
@@ -7,27 +7,27 @@
public static Test suite() {
TestSuite suite = new TestSuite(
- "Test for org.hibernate.tool.test.jdbc2cfg" );
+ "Test for org.hibernate.tool.test.jdbc2cfg");
//$JUnit-BEGIN$
- suite.addTest( BasicMultiSchemaTest.suite() );
- suite.addTest( PerformanceTest.suite() );
- suite.addTest( NoPrimaryKeyTest.suite() );
- suite.addTest( SearchEscapeStringTest.suite() );
- suite.addTest( ManyToManyTest.suite() );
- suite.addTest( OverrideBinderTest.suite() );
- suite.addTest( VersioningTest.suite() );
- suite.addTest( MetaDataTest.suite() );
- suite.addTest( CompositeIdTest.suite() );
- suite.addTest( IndexTest.suite() );
- suite.addTest( OracleCompositeIdOrderTest.suite() );
- suite.addTest( ForeignKeysTest.suite() );
- suite.addTest( RevEngForeignKeyTests.suite() );
- suite.addTest( OracleViewsTest.suite() );
- suite.addTest( BasicTest.suite() );
- suite.addTest( AutoQuoteTest.suite() );
- suite.addTest( KeyPropertyCompositeIdTest.suite() );
- suite.addTest( PersistentClassesTest.suite() );
- suite.addTest( DefaultReverseEngineeringStrategyTest.suite() );
+ suite.addTest(ManyToManyTest.suite());
+ suite.addTest(OverrideBinderTest.suite());
+ suite.addTest(DefaultReverseEngineeringStrategyTest.suite());
+ suite.addTest(PersistentClassesTest.suite());
+ suite.addTest(OracleViewsTest.suite());
+ suite.addTest(CompositeIdTest.suite());
+ suite.addTest(SearchEscapeStringTest.suite());
+ suite.addTest(PerformanceTest.suite());
+ suite.addTest(ForeignKeysTest.suite());
+ suite.addTest(BasicMultiSchemaTest.suite());
+ suite.addTest(MetaDataTest.suite());
+ suite.addTest(RevEngForeignKeyTests.suite());
+ suite.addTest(OracleCompositeIdOrderTest.suite());
+ suite.addTest(NoPrimaryKeyTest.suite());
+ suite.addTest(BasicTest.suite());
+ suite.addTest(VersioningTest.suite());
+ suite.addTest(AutoQuoteTest.suite());
+ suite.addTest(KeyPropertyCompositeIdTest.suite());
+ suite.addTest(IndexTest.suite());
//$JUnit-END$
return suite;
}