cvs commit: spice/sandbox/metaclass/src/test/org/realityforge/metaclass/io DOMMetaClassDeserializerTestCase.java

Peter Donald <[email protected]>
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
donaldp     03/10/31 16:25:03

  Modified:    sandbox/metaclass/src/test/org/realityforge/metaclass/io
                        DOMMetaClassDeserializerTestCase.java
  Log:
  Unit test getAttribute and getAttributes
  
  Revision  Changes    Path
  1.5       +103 -2    spice/sandbox/metaclass/src/test/org/realityforge/metaclass/io/DOMMetaClassDeserializerTestCase.java
  
  Index: DOMMetaClassDeserializerTestCase.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/metaclass/src/test/org/realityforge/metaclass/io/DOMMetaClassDeserializerTestCase.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DOMMetaClassDeserializerTestCase.java	1 Nov 2003 00:09:09 -0000	1.4
  +++ DOMMetaClassDeserializerTestCase.java	1 Nov 2003 00:25:03 -0000	1.5
  @@ -12,12 +12,15 @@
   import junit.framework.TestCase;
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
  +import org.w3c.dom.Text;
  +import org.w3c.dom.Comment;
  +import org.realityforge.metaclass.model.Attribute;
   import java.util.Properties;
   
   /**
    *
    * @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
  - * @version $Revision: 1.4 $ $Date: 2003/11/01 00:09:09 $
  + * @version $Revision: 1.5 $ $Date: 2003/11/01 00:25:03 $
    */
   public class DOMMetaClassDeserializerTestCase
       extends TestCase
  @@ -116,7 +119,105 @@
           final Properties parameters = new Properties();
           deserializer.buildParam( element, parameters );
           assertEquals( "parameters.size()", 1, parameters.size() );
  -        assertEquals( "parameters['myKey']", "myValue", parameters.getProperty( "myKey") );
  +        assertEquals( "parameters['myKey']", "myValue", parameters.getProperty( "myKey" ) );
  +    }
  +
  +    public void testAttributeWithJustName()
  +        throws Exception
  +    {
  +        final DOMMetaClassDeserializer deserializer = new DOMMetaClassDeserializer();
  +        final Document document = createDocument();
  +        final Element root = document.createElement( MetaClassIOXml.ATTRIBUTES_ELEMENT );
  +        final Element element = document.createElement( MetaClassIOXml.ATTRIBUTE_ELEMENT );
  +        root.appendChild( element );
  +        element.setAttribute( MetaClassIOXml.NAME_ATTRIBUTE, "myAttribute" );
  +        final Attribute[] attributes = deserializer.buildAttributes( root );
  +        assertEquals( "attributes.length", 1, attributes.length );
  +        assertEquals( "attributes[0].name", "myAttribute", attributes[ 0 ].getName() );
  +        assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
  +        assertEquals( "attributes[0].parameterCount", 0, attributes[ 0 ].getParameterCount() );
  +    }
  +
  +    public void testAttributeWithParametersAndValue()
  +        throws Exception
  +    {
  +        final DOMMetaClassDeserializer deserializer = new DOMMetaClassDeserializer();
  +        final Document document = createDocument();
  +        final Element root = document.createElement( MetaClassIOXml.ATTRIBUTES_ELEMENT );
  +        final Element element = document.createElement( MetaClassIOXml.ATTRIBUTE_ELEMENT );
  +        root.appendChild( element );
  +        element.setAttribute( MetaClassIOXml.NAME_ATTRIBUTE, "myAttribute" );
  +        final Element parameterElement = document.createElement( MetaClassIOXml.PARAM_ELEMENT );
  +        element.appendChild( parameterElement );
  +        parameterElement.setAttribute( MetaClassIOXml.NAME_ATTRIBUTE, "myKey" );
  +        parameterElement.setAttribute( MetaClassIOXml.VALUE_ATTRIBUTE, "myValue" );
  +
  +        final Text text = document.createTextNode( "Part1" );
  +        element.appendChild( text );
  +        final Comment comment = document.createComment( "Random COmment" );
  +        element.appendChild( comment );
  +        final Text text2 = document.createCDATASection( "Part2" );
  +        element.appendChild( text2 );
  +
  +        try
  +        {
  +            deserializer.buildAttributes( root );
  +        }
  +        catch( Exception e )
  +        {
  +            final Properties parameters = new Properties();
  +            parameters.setProperty( "myKey", "myValue" );
  +            final String message =
  +                "Attribute named myAttribute specified both a value " +
  +                "(Part1Part2) and parameters (" + parameters + ").";
  +            assertEquals( "e.getMessage()", message, e.getMessage() );
  +            return;
  +        }
  +        fail( "Expected to fail due to mixed content" );
  +    }
  +
  +    public void testAttributeWithParameters()
  +        throws Exception
  +    {
  +        final DOMMetaClassDeserializer deserializer = new DOMMetaClassDeserializer();
  +        final Document document = createDocument();
  +        final Element root = document.createElement( MetaClassIOXml.ATTRIBUTES_ELEMENT );
  +        final Element element = document.createElement( MetaClassIOXml.ATTRIBUTE_ELEMENT );
  +        root.appendChild( element );
  +        element.setAttribute( MetaClassIOXml.NAME_ATTRIBUTE, "myAttribute" );
  +        final Element parameterElement = document.createElement( MetaClassIOXml.PARAM_ELEMENT );
  +        element.appendChild( parameterElement );
  +        parameterElement.setAttribute( MetaClassIOXml.NAME_ATTRIBUTE, "myKey" );
  +        parameterElement.setAttribute( MetaClassIOXml.VALUE_ATTRIBUTE, "myValue" );
  +
  +        final Attribute[] attributes = deserializer.buildAttributes( root );
  +        assertEquals( "attributes.length", 1, attributes.length );
  +        assertEquals( "attributes[0].name", "myAttribute", attributes[ 0 ].getName() );
  +        assertEquals( "attributes[0].value", null, attributes[ 0 ].getValue() );
  +        assertEquals( "attributes[0].parameterCount", 1, attributes[ 0 ].getParameterCount() );
  +        assertEquals( "attributes[0].parameters['myKey']", "myValue", attributes[ 0 ].getParameter( "myKey" ) );
  +    }
  +
  +    public void testAttributeWithValue()
  +        throws Exception
  +    {
  +        final DOMMetaClassDeserializer deserializer = new DOMMetaClassDeserializer();
  +        final Document document = createDocument();
  +        final Element root = document.createElement( MetaClassIOXml.ATTRIBUTES_ELEMENT );
  +        final Element element = document.createElement( MetaClassIOXml.ATTRIBUTE_ELEMENT );
  +        root.appendChild( element );
  +        final Text text = document.createTextNode( "Part1" );
  +        element.appendChild( text );
  +        final Comment comment = document.createComment( "Random COmment" );
  +        element.appendChild( comment );
  +        final Text text2 = document.createCDATASection( "Part2" );
  +        element.appendChild( text2 );
  +        element.setAttribute( MetaClassIOXml.NAME_ATTRIBUTE, "myAttribute" );
  +        final Attribute[] attributes = deserializer.buildAttributes( root );
  +        assertEquals( "attributes.length", 1, attributes.length );
  +        assertEquals( "attributes[0].name", "myAttribute", attributes[ 0 ].getName() );
  +        assertEquals( "attributes[0].value", "Part1Part2", attributes[ 0 ].getValue() );
  +        assertEquals( "attributes[0].parameterCount", 0, attributes[ 0 ].getParameterCount() );
       }
   
       private Document createDocument()
  
  
  


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.