cvs commit: spice/sandbox/metaclass/src/test/org/realityforge/metaclass/introspector CachingMetaClassAccessorTestCase.java

Peter Donald <[email protected]>
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
donaldp     03/10/27 22:40:56

  Added:       sandbox/metaclass/src/test/org/realityforge/metaclass/introspector
                        CachingMetaClassAccessorTestCase.java
  Log:
  Rewrite registry as a CachingMetaClassAccessor as thats all we really need.
  
  Revision  Changes    Path
  1.1                  spice/sandbox/metaclass/src/test/org/realityforge/metaclass/introspector/CachingMetaClassAccessorTestCase.java
  
  Index: CachingMetaClassAccessorTestCase.java
  ===================================================================
  /*
   * Copyright (C) The Spice Group. All rights reserved.
   *
   * This software is published under the terms of the Spice
   * Software License version 1.1, a copy of which has been included
   * with this distribution in the LICENSE.txt file.
   */
  package org.realityforge.metaclass.introspector;
  
  import junit.framework.TestCase;
  import org.realityforge.metaclass.model.Attribute;
  import org.realityforge.metaclass.model.ClassDescriptor;
  import org.realityforge.metaclass.model.FieldDescriptor;
  import org.realityforge.metaclass.model.MethodDescriptor;
  
  /**
   *
   * @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
   * @version $Revision: 1.1 $ $Date: 2003/10/28 06:40:56 $
   */
  public class CachingMetaClassAccessorTestCase
     extends TestCase
  {
     public void testGetNonExistent()
        throws Exception
     {
        final CachingMetaClassAccessor accessor = new CachingMetaClassAccessor();
        try
        {
           accessor.getClassDescriptor( "NoExist", getClass().getClassLoader() );
        }
        catch ( final MetaClassException mce )
        {
           assertEquals( "mce.getMessage()",
                         "Missing Attributes for NoExist",
                         mce.getMessage() );
           return;
        }
        fail( "Expected to fail to get non-existent descriptor" );
     }
  
     public void testGetExistent()
        throws Exception
     {
        final CachingMetaClassAccessor accessor = new CachingMetaClassAccessor();
        final ClassDescriptor descriptor =
           new ClassDescriptor( "MyClass",
                                Attribute.EMPTY_SET,
                                FieldDescriptor.EMPTY_SET,
                                MethodDescriptor.EMPTY_SET );
        final ClassLoader classLoader = getClass().getClassLoader();
        accessor.registerDescriptor( descriptor, classLoader );
        final ClassDescriptor result = accessor.getClassDescriptor( "MyClass", classLoader );
        assertEquals( "descriptor", descriptor, result );
     }
  
     public void testGetExistentThenClear()
        throws Exception
     {
        final CachingMetaClassAccessor accessor = new CachingMetaClassAccessor();
        final ClassDescriptor descriptor =
           new ClassDescriptor( "MyClass",
                                Attribute.EMPTY_SET,
                                FieldDescriptor.EMPTY_SET,
                                MethodDescriptor.EMPTY_SET );
        final ClassLoader classLoader = getClass().getClassLoader();
        accessor.registerDescriptor( descriptor, classLoader );
        final ClassDescriptor result = accessor.getClassDescriptor( "MyClass", classLoader );
        assertEquals( "descriptor", descriptor, result );
  
        try
        {
           accessor.getClassDescriptor( "MyClass", classLoader );
        }
        catch ( final MetaClassException mce )
        {
           assertEquals( "mce.getMessage()",
                         "Missing Attributes for MyClass",
                         mce.getMessage() );
           return;
        }
     }
  
     public void testRegisterMultipleInSameClassLoader()
        throws Exception
     {
        final CachingMetaClassAccessor accessor = new CachingMetaClassAccessor();
        final ClassDescriptor descriptor1 =
           new ClassDescriptor( "MyClass",
                                Attribute.EMPTY_SET,
                                FieldDescriptor.EMPTY_SET,
                                MethodDescriptor.EMPTY_SET );
        final ClassDescriptor descriptor2 =
           new ClassDescriptor( "MyClass2",
                                Attribute.EMPTY_SET,
                                FieldDescriptor.EMPTY_SET,
                                MethodDescriptor.EMPTY_SET );
        final ClassLoader classLoader = getClass().getClassLoader();
        accessor.registerDescriptor( descriptor1, classLoader );
        accessor.registerDescriptor( descriptor2, classLoader );
        final ClassDescriptor result1 =
           accessor.getClassDescriptor( "MyClass", classLoader );
        assertEquals( "descriptor1", descriptor1, result1 );
        final ClassDescriptor result2 =
           accessor.getClassDescriptor( "MyClass2", classLoader );
        assertEquals( "descriptor2", descriptor2, result2 );
     }
  
     public void testNullDescriptorPassedToRegisterDescriptor()
        throws Exception
     {
        final CachingMetaClassAccessor accessor = new CachingMetaClassAccessor();
        try
        {
           accessor.registerDescriptor( null, getClass().getClassLoader() );
        }
        catch ( final NullPointerException npe )
        {
           assertEquals( "npe.getMessage()", "descriptor", npe.getMessage() );
           return;
        }
        fail( "Expected to fail due to null Descriptor passed into RegisterDescriptor" );
     }
  
     public void testNullClassLoaderPassedToRegisterDescriptor()
        throws Exception
     {
        final ClassDescriptor descriptor =
           new ClassDescriptor( "MyClass2",
                                Attribute.EMPTY_SET,
                                FieldDescriptor.EMPTY_SET,
                                MethodDescriptor.EMPTY_SET );
        final CachingMetaClassAccessor accessor = new CachingMetaClassAccessor();
        try
        {
           accessor.registerDescriptor( descriptor, null );
        }
        catch ( final NullPointerException npe )
        {
           assertEquals( "npe.getMessage()", "classLoader", npe.getMessage() );
           return;
        }
        fail( "Expected to fail due to null classLoader passed into RegisterDescriptor" );
     }
  }
  
  
  


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. 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.