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/