You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rd...@apache.org on 2003/09/08 16:00:47 UTC

cvs commit: jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/introspection TestXMLIntrospector.java

rdonkin     2003/09/08 07:00:47

  Modified:    betwixt/src/test/org/apache/commons/betwixt/dotbetwixt
                        TestXmlToBean.java
               betwixt/src/test/org/apache/commons/betwixt/introspection
                        TestXMLIntrospector.java
  Log:
  Test cases for ClassNormalizer
  
  Revision  Changes    Path
  1.4       +10 -10    jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/dotbetwixt/TestXmlToBean.java
  
  Index: TestXmlToBean.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/dotbetwixt/TestXmlToBean.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestXmlToBean.java	24 Aug 2003 16:57:40 -0000	1.3
  +++ TestXmlToBean.java	8 Sep 2003 14:00:47 -0000	1.4
  @@ -193,11 +193,11 @@
       
       /** Tests basic use of an implementation for an interface */
       public void testBasicInterfaceImpl() throws Exception {
  -        SimpleLog log = new SimpleLog("[testBasicInterfaceImpl:BeanRuleSet]");
  -        log.setLevel(SimpleLog.LOG_LEVEL_TRACE);
  -        BeanRuleSet.setLog(log);
  -        log = new SimpleLog("[testBasicInterfaceImpl:BeanReader]");
  -        log.setLevel(SimpleLog.LOG_LEVEL_TRACE);
  +        //SimpleLog log = new SimpleLog("[testBasicInterfaceImpl:BeanRuleSet]");
  +        //log.setLevel(SimpleLog.LOG_LEVEL_TRACE);
  +        //BeanRuleSet.setLog(log);
  +        //log = new SimpleLog("[testBasicInterfaceImpl:BeanReader]");
  +        //log.setLevel(SimpleLog.LOG_LEVEL_TRACE);
       
           ExampleBean bean = new ExampleBean("Alice");
           bean.addExample(new ExampleImpl(1, "Mad Hatter"));
  @@ -213,7 +213,7 @@
           
           
           BeanReader reader = new BeanReader();
  -        reader.setLog(log);
  +        //reader.setLog(log);
           reader.getXMLIntrospector().setElementNameMapper(new HyphenatedNameMapper());
           reader.getXMLIntrospector().setWrapCollectionsInElement(false);
           reader.registerBeanClass( ExampleBean.class );
  
  
  
  1.6       +65 -5     jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/introspection/TestXMLIntrospector.java
  
  Index: TestXMLIntrospector.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/introspection/TestXMLIntrospector.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TestXMLIntrospector.java	27 Jul 2003 17:55:51 -0000	1.5
  +++ TestXMLIntrospector.java	8 Sep 2003 14:00:47 -0000	1.6
  @@ -80,6 +80,9 @@
   import org.apache.commons.betwixt.ElementDescriptor;
   import org.apache.commons.betwixt.AttributeDescriptor;
   
  +import org.apache.commons.betwixt.strategy.ClassNormalizer;
  +import org.apache.commons.betwixt.strategy.ListedClassNormalizer;
  +
   import org.apache.commons.betwixt.io.BeanWriter;
   
   import org.apache.commons.logging.impl.SimpleLog;
  @@ -250,5 +253,62 @@
                       parseString(out.toString()));
           }
       }
  +    
  +    public void testDefaultClassNormalizer() throws Exception {
  +        XMLIntrospector introspector = new XMLIntrospector();
  +        
  +        FaceImpl face = new FaceImpl();
  +        XMLBeanInfo info = introspector.introspect( face );
  +        ElementDescriptor elementDescriptor = info.getElementDescriptor();
  +    
  +        AttributeDescriptor[] attributeDescriptor = elementDescriptor.getAttributeDescriptors();      
  +        ElementDescriptor[] children = elementDescriptor.getElementDescriptors();
  +        
  +        assertEquals("Expected no attributes", 0, attributeDescriptor.length);
  +        assertEquals("Expected two elements", 2, children.length);
  +    }	
  +    
  +    public void testClassNormalizer() throws Exception {
  +        XMLIntrospector introspector = new XMLIntrospector();
  +        introspector.setClassNormalizer( new ClassNormalizer() {
  +                
  +                public Class normalize(Class clazz) {
  +                    if (IFace.class.isAssignableFrom( clazz )) {
  +                        return IFace.class;
  +                    }	
  +                    return super.normalize( clazz );
  +                }	
  +            });
  +        
  +        FaceImpl face = new FaceImpl();
  +        XMLBeanInfo info = introspector.introspect( face );
  +        ElementDescriptor elementDescriptor = info.getElementDescriptor();
  +        assertEquals("Expected only itself", 1, elementDescriptor.getElementDescriptors().length);
  +    
  +        AttributeDescriptor[] attributeDescriptor = elementDescriptor.getAttributeDescriptors();      
  +        ElementDescriptor[] children = elementDescriptor.getElementDescriptors();
  +        
  +        assertEquals("Expected no attributes", 0, attributeDescriptor.length);
  +        assertEquals("Expected one elements", 1, children.length);
  +        assertEquals("Expected element", "name", children[0].getLocalName());
  +    }	
  +    
  +    public void testListedClassNormalizer() throws Exception {
  +        ListedClassNormalizer classNormalizer = new ListedClassNormalizer();
  +        classNormalizer.addSubstitution( IFace.class );
  +        XMLIntrospector introspector = new XMLIntrospector();
  +        introspector.setClassNormalizer(classNormalizer);
  +        
  +        FaceImpl face = new FaceImpl();
  +        
  +        XMLBeanInfo info = introspector.introspect( face );
  +        ElementDescriptor elementDescriptor = info.getElementDescriptor();
  +        AttributeDescriptor[] attributeDescriptor = elementDescriptor.getAttributeDescriptors();      
  +        ElementDescriptor[] children = elementDescriptor.getElementDescriptors();
  +        
  +        assertEquals("Expected no attributes", 0, attributeDescriptor.length);
  +        assertEquals("Expected one elements", 1, children.length);
  +        assertEquals("Expected element", "name", children[0].getLocalName());
  +    }	    
   }