[jboss-svn-commits] JBoss Common SVN: r2526 - jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Sep 3 09:42:12 EDT 2007


Author: alex.loubyansky at jboss.com
Date: 2007-09-03 09:42:11 -0400 (Mon, 03 Sep 2007)
New Revision: 2526

Added:
   jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBossCMPMergeUnitTestCase.java
Log:
testcase for merging jbosscmp and ejb-jar

Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBossCMPMergeUnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBossCMPMergeUnitTestCase.java	                        (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBossCMPMergeUnitTestCase.java	2007-09-03 13:42:11 UTC (rev 2526)
@@ -0,0 +1,273 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ejb.metadata.test;
+
+import java.sql.Types;
+import java.util.List;
+
+import junit.framework.Test;
+
+import org.jboss.ejb.metadata.jboss.cmp.JBossCMPFieldMetaData;
+import org.jboss.ejb.metadata.jboss.cmp.JBossCMPEntityBeanMetaData;
+import org.jboss.ejb.metadata.jboss.cmp.JBossCMPFieldsMetaData;
+import org.jboss.ejb.metadata.jboss.cmp.JBossCMPMetaData;
+import org.jboss.ejb.metadata.jboss.cmp.JBossCMPQueryMetaData;
+import org.jboss.ejb.metadata.spec.EjbJar21MetaData;
+import org.jboss.ejb.metadata.spec.EjbJar30MetaData;
+import org.jboss.javaee.metadata.spec.JavaEEMetaDataConstants;
+import org.jboss.test.ejb.AbstractEJBEverythingTest;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.builder.JBossXBBuilder;
+import org.w3c.dom.ls.LSInput;
+
+
+/**
+ * A JBossCMPMergeUnitTestCase.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class JBossCMPMergeUnitTestCase
+   extends AbstractEJBEverythingTest
+{
+   public static Test suite()
+   {
+      return suite(JBossCMPMergeUnitTestCase.class);
+   }
+
+   public static SchemaBindingResolver initResolver()
+   {
+      return new SchemaBindingResolver()
+      {
+         public String getBaseURI()
+         {
+            return null;
+         }
+
+         public SchemaBinding resolve(String nsUri, String baseURI, String schemaLocation)
+         {
+            SchemaBinding schema;
+            if(JavaEEMetaDataConstants.JAVAEE_NS.equals(nsUri))
+            {
+               schema = JBossXBBuilder.build(EjbJar30MetaData.class);
+            }
+            else if(JavaEEMetaDataConstants.J2EE_NS.equals(nsUri))
+            {
+               schema = JBossXBBuilder.build(EjbJar21MetaData.class);
+            }
+            else if(JavaEEMetaDataConstants.JBOSS_CMP2X_NS.equals(nsUri))
+            {
+               schema = JBossXBBuilder.build(JBossCMPMetaData.class);
+            }
+            else
+            {
+               throw new IllegalStateException("Unexpected namespace: " + nsUri);
+            }
+            return schema;
+         }
+
+         public LSInput resolveAsLSInput(String nsUri, String baseUri, String schemaLocation)
+         {
+            return null;
+         }
+
+         public void setBaseURI(String baseURI)
+         {
+         }
+      };
+   }
+
+   public JBossCMPMergeUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   /**
+    * Very basic merge test
+    */
+   public void testMerge() throws Exception
+   {
+      EjbJar21MetaData ejbJarMetaData = unmarshal("EjbJar21Everything_testEverything.xml", EjbJar21MetaData.class, null);
+      EjbJar21EverythingUnitTestCase ejbJar = new EjbJar21EverythingUnitTestCase("ejb-jar");
+      ejbJar.assertEverything(ejbJarMetaData);
+
+      JBossCMPMetaData jbossCMPMetaData = unmarshal("JBossCMPMerge_testMerge.xml", JBossCMPMetaData.class, null);
+
+      jbossCMPMetaData.setOverridenMetaData(ejbJarMetaData);
+
+      assertEquals(6, jbossCMPMetaData.getMergedEnterpriseBeans().size());
+
+      // both null
+      JBossCMPEntityBeanMetaData ejb = jbossCMPMetaData.getMergedEnterpriseBean("entity0EjbName");      
+      assertNullEntity("entity0", ejb);
+      assertNotNull(ejb.getOverridenMetaData());
+      ejbJar.assertNullEntity(ejb.getOverridenMetaData());
+
+      // full in ejb-jar and null in jbosscmp
+      ejb = jbossCMPMetaData.getMergedEnterpriseBean("entity1EjbName");      
+      assertNotNull(ejb);
+      assertEquals("entity1EjbName", ejb.getEjbName());
+      assertNull(ejb.getAudit());
+      assertNull(ejb.getDatasource());
+      assertNull(ejb.getDatasourceMapping());
+      assertNull(ejb.getEagerLoadGroup());
+      assertNull(ejb.getEntityCommand());
+      assertNull(ejb.getLazyLoadGroups());
+      assertNull(ejb.getLoadGroups());
+      assertNull(ejb.getOptimisticLocking());
+      assertNull(ejb.getPostTableCreate());
+      assertNull(ejb.getReadAhead());
+      assertNull(ejb.getTableName());
+      assertNull(ejb.getUnknownPk());
+      assertEquals(0, ejb.getFetchSize());
+      assertEquals(0, ejb.getListCacheMax());
+      assertEquals(0, ejb.getReadTimeOut());
+      assertFalse(ejb.isCleanReadAheadOnLoad());
+      assertFalse(ejb.isCreateTable());
+      assertFalse(ejb.isPkConstraint());
+      assertFalse(ejb.isReadOnly());
+      assertFalse(ejb.isRemoveTable());
+      assertFalse(ejb.isRowLocking());
+      JBossCMPFieldsMetaData cmpFields = ejb.getCmpFields();
+      assertNotNull(cmpFields);
+      assertEquals(2, cmpFields.size());
+      JBossCMPFieldMetaData cmpField = cmpFields.get("entity1CmpField1");
+      assertNullField("entity1CmpField1", cmpField);
+      cmpField = cmpFields.get("entity1CmpField2");
+      assertNullField("entity1CmpField2", cmpField);
+      
+      //    TODO queries should not be null!!! 
+      assertNull(ejb.getQueries());
+
+      assertNotNull(ejb.getOverridenMetaData());
+      ejbJar.assertFullEntity("entity1", ejb.getOverridenMetaData());
+      
+      // both not null
+      ejb = jbossCMPMetaData.getMergedEnterpriseBean("entity2EjbName");      
+      assertNotNull(ejb.getOverridenMetaData());
+      ejbJar.assertFullEntity("entity2", ejb.getOverridenMetaData());
+      assertEquals("entity2EjbName", ejb.getEjbName());
+      assertEquals("java:/DefaultDS", ejb.getDatasource());
+      assertEquals("Hypersonic SQL", ejb.getDatasourceMapping());
+      assertTrue(ejb.isCreateTable());
+      assertTrue(ejb.isRemoveTable());
+      assertEquals("entity2Table", ejb.getTableName());
+      assertTrue(ejb.isCreateTable());
+      assertTrue(ejb.isRemoveTable());
+
+      cmpFields = ejb.getCmpFields();
+      assertNotNull(cmpFields);
+      assertEquals(2, cmpFields.size());
+
+      cmpField = cmpFields.get("entity2CmpField1");
+      assertNullField("entity2CmpField1", cmpField);
+      cmpField = cmpFields.get("entity2CmpField2");
+      assertNotNull(cmpField);
+      assertEquals("entity2CmpField2", cmpField.getFieldName());
+      assertEquals("name_column", cmpField.getColumnName());
+      assertEquals(Types.VARCHAR, cmpField.getJdbcType());
+      assertNull(cmpField.getProperties());
+      assertEquals(1111, cmpField.getReadTimeOut());
+      assertEquals("VARCHAR(111)", cmpField.getSqlType());
+      assertEquals("entity2.StateFactory", cmpField.getStateFactory());
+      assertTrue(cmpField.isAutoIncrement());
+      assertTrue(cmpField.isCheckDirtyAfterGet());
+      assertTrue(cmpField.isDbindex());
+      assertTrue(cmpField.isNotNull());
+      assertTrue(cmpField.isReadOnly());
+      assertNotNull(cmpField.getOverridenMetaData());
+      assertEquals("entity2CmpField2", cmpField.getOverridenMetaData().getFieldName());
+
+      // TODO there should be 2 queries!!!
+      List<JBossCMPQueryMetaData> queries = ejb.getQueries();
+      assertNotNull(queries);
+      assertEquals(1, queries.size());
+
+      assertNull(ejb.getAudit());
+      assertNull(ejb.getEagerLoadGroup());
+      assertNull(ejb.getEntityCommand());
+      assertNull(ejb.getLazyLoadGroups());
+      assertNull(ejb.getLoadGroups());
+      assertNull(ejb.getOptimisticLocking());
+      assertNull(ejb.getPostTableCreate());
+      assertNull(ejb.getReadAhead());
+      assertNull(ejb.getUnknownPk());
+      assertEquals(0, ejb.getFetchSize());
+      assertEquals(0, ejb.getListCacheMax());
+      assertEquals(0, ejb.getReadTimeOut());
+      assertFalse(ejb.isCleanReadAheadOnLoad());
+      assertFalse(ejb.isPkConstraint());
+      assertFalse(ejb.isReadOnly());
+      assertFalse(ejb.isRowLocking());
+      
+      // TODO relationships
+   }
+
+   private void assertNullField(String fieldName, JBossCMPFieldMetaData cmpField)
+   {
+      assertNotNull(cmpField);
+      assertEquals(fieldName, cmpField.getFieldName());
+      assertNull(cmpField.getColumnName());
+      assertEquals(0, cmpField.getJdbcType());
+      assertNull(cmpField.getProperties());
+      assertEquals(0, cmpField.getReadTimeOut());
+      assertNull(cmpField.getSqlType());
+      assertNull(cmpField.getStateFactory());
+      assertFalse(cmpField.isAutoIncrement());
+      assertFalse(cmpField.isCheckDirtyAfterGet());
+      assertFalse(cmpField.isDbindex());
+      assertFalse(cmpField.isNotNull());
+      assertFalse(cmpField.isReadOnly());
+      assertNotNull(cmpField.getOverridenMetaData());
+      assertEquals(fieldName, cmpField.getOverridenMetaData().getFieldName());
+   }
+
+   private void assertNullEntity(String entity, JBossCMPEntityBeanMetaData ejb)
+   {
+      assertNotNull(ejb);
+      assertEquals(entity + "EjbName", ejb.getEjbName());
+      assertNull(ejb.getAudit());
+      assertNull(ejb.getCmpFields());
+      assertNull(ejb.getDatasource());
+      assertNull(ejb.getDatasourceMapping());
+      assertNull(ejb.getEagerLoadGroup());
+      assertNull(ejb.getEntityCommand());
+      assertNull(ejb.getLazyLoadGroups());
+      assertNull(ejb.getLoadGroups());
+      assertNull(ejb.getOptimisticLocking());
+      assertNull(ejb.getPostTableCreate());
+      assertNull(ejb.getQueries());
+      assertNull(ejb.getReadAhead());
+      assertNull(ejb.getTableName());
+      assertNull(ejb.getUnknownPk());
+      assertEquals(0, ejb.getFetchSize());
+      assertEquals(0, ejb.getListCacheMax());
+      assertEquals(0, ejb.getReadTimeOut());
+      assertFalse(ejb.isCleanReadAheadOnLoad());
+      assertFalse(ejb.isCreateTable());
+      assertFalse(ejb.isPkConstraint());
+      assertFalse(ejb.isReadOnly());
+      assertFalse(ejb.isRemoveTable());
+      assertFalse(ejb.isRowLocking());
+   }
+}




More information about the jboss-svn-commits mailing list