You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by le...@apache.org on 2004/09/10 22:52:45 UTC
cvs commit: jakarta-commons/attributes/unittest/src/test/org/apache/commons/attributes/test InheritableTestCase.java
leosutic 2004/09/10 13:52:45
Added: attributes/unittest/src/test/org/apache/commons/attributes/test
InheritableTestCase.java
Log:
Refactored test cases.
Revision Changes Path
1.1 jakarta-commons/attributes/unittest/src/test/org/apache/commons/attributes/test/InheritableTestCase.java
Index: InheritableTestCase.java
===================================================================
/*
* Copyright 2003-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.attributes.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Constructor;
import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Collection;
import java.util.Iterator;
import org.apache.commons.attributes.Attributes;
import org.apache.commons.attributes.AttributeIndex;
import junit.framework.TestCase;
public class InheritableTestCase extends TestCase {
public static interface SampleService {}
/**
* @@InheritableTestCase.InheritableAttribute ("super-sample")
*/
public static class SuperClass {
/**
* @@InheritableTestCase.NonInheritableAttribute ()
* @@InheritableTestCase.InheritableAttribute ( "super-field" )
*/
public Object field;
/**
* @@InheritableTestCase.InheritableAttribute ( "super-noattrs" )
*/
public Object noAttributesInSubClass;
/**
* @@InheritableTestCase.InheritableAttribute ( "sample-ctor1" )
*/
public SuperClass () {
}
/**
* @@InheritableTestCase.InheritableAttribute( "sample-ctor2" )
* @@.array InheritableTestCase.NonInheritableAttribute()
*/
public SuperClass (String input, String[][] array) {
}
/**
* @@InheritableTestCase.InheritableAttribute( "super-some-method-sample" )
* @@InheritableTestCase.NonInheritableAttribute()
*/
public void someMethod (int parameter) {
}
/**
* @@InheritableTestCase.InheritableAttribute( "super-privateMethod" )
*/
private void privateMethod () {
}
}
public static interface JoinedInterface extends InterfaceOne, InterfaceTwo {
}
/**
* @@InheritableTestCase.InheritableAttribute( "sample-if-2-c" )
*/
public static interface InterfaceTwo {
/**
* @@InheritableTestCase.InheritableAttribute( "sample-if-2" )
* @@InheritableTestCase.NonInheritableAttribute()
*/
public void someMethod (int parameter);
}
/**
* @@InheritableTestCase.InheritableAttribute( "sample-if-1-c" )
*/
public static interface InterfaceOne {
/**
* @@InheritableTestCase.InheritableAttribute( "sample-if-1" )
* @@InheritableTestCase.NonInheritableAttribute()
*/
public void someMethod (int parameter);
/**
* @@.return InheritableTestCase.InheritableAttribute("sample-if-return" )
* @@.param2 InheritableTestCase.InheritableAttribute("sample-if-param-2" )
*/
public Integer methodWithAttributes (int param1, int param2);
}
/**
* @@org.apache.commons.attributes.Inheritable()
*/
public static class InheritableAttribute {
private final String name;
public InheritableAttribute(String name) { this.name = name; }
public String getInheritableAttributeName () { return name; }
public boolean equals (Object o) {
return o instanceof InheritableAttribute &&
((InheritableAttribute) o).name.equals (name);
}
public int hashCode () { return name.hashCode (); }
public String toString () { return "[InheritableAttribute \"" + name + "\"]"; }
}
public static class NonInheritableAttribute {
public NonInheritableAttribute() {}
public boolean equals (Object o) { return o instanceof NonInheritableAttribute; }
public int hashCode () { return 0; }
public String toString () { return "[NonInheritableAttribute]"; }
}
/** @@InheritableTestCase.NonInheritableAttribute()
* @@InheritableTestCase.InheritableAttribute( "sample" ) */
public static class Sample extends InheritableTestCase.SuperClass implements JoinedInterface {
/** @@InheritableTestCase.NonInheritableAttribute() */
public Object field;
public Object noAttributesInSubClass;
/** @@InheritableTestCase.InheritableAttribute( "sample-some-method1" ) */
public void someMethod () {}
/** @@InheritableTestCase.InheritableAttribute( "sample-some-method2" ) */
public void someMethod (int parameter) {}
/** @@.param2 InheritableTestCase.NonInheritableAttribute ()
* @@.return InheritableTestCase.InheritableAttribute("sample-return") */
public Integer methodWithAttributes (int param1, int param2) { return null; }
public void methodWithNoAttributes () {}
/** @@InheritableTestCase.InheritableAttribute( "inner-sample" ) */
public static class InnerSample {}
/** @@InheritableTestCase.InheritableAttribute( "sample-privateMethod" ) */
private void privateMethod () {}
}
public void testClassInheritance () throws Exception {
Class c = Sample.class;
assertEquals (5, Attributes.getAttributes (c).size ());
assertEquals (4, Attributes.getAttributes (c, InheritableAttribute.class).size ());
assertTrue (Attributes.hasAttributeType (c, InheritableAttribute.class));
assertTrue (Attributes.hasAttributeType (c, NonInheritableAttribute.class));
assertTrue (Attributes.hasAttribute (c, new InheritableAttribute( "sample" )));
assertTrue (Attributes.hasAttribute (c, new InheritableAttribute( "super-sample" )));
assertTrue (Attributes.hasAttribute (c, new InheritableAttribute( "sample-if-1-c" )));
assertTrue (Attributes.hasAttribute (c, new InheritableAttribute( "sample-if-2-c" )));
assertTrue (Attributes.hasAttribute (c, new NonInheritableAttribute()));
}
public void testMethodInheritance () throws Exception {
Method m = Sample.class.getMethod ("someMethod", new Class[]{ Integer.TYPE });
assertEquals (4, Attributes.getAttributes (m).size ());
assertEquals (4, Attributes.getAttributes (m, InheritableAttribute.class).size ());
assertTrue (Attributes.hasAttributeType (m, InheritableAttribute.class));
assertTrue (Attributes.hasAttribute (m, new InheritableAttribute( "super-some-method-sample" )));
assertTrue (Attributes.hasAttribute (m, new InheritableAttribute( "sample-some-method2" ) ));
assertTrue (Attributes.hasAttribute (m, new InheritableAttribute( "sample-if-1" ) ));
assertTrue (Attributes.hasAttribute (m, new InheritableAttribute( "sample-if-2" ) ));
}
public void testPrivateMethodNonInheritance () throws Exception {
Method m = Sample.class.getDeclaredMethod ("privateMethod", new Class[]{});
assertEquals (1, Attributes.getAttributes (m).size ());
assertEquals (1, Attributes.getAttributes (m, InheritableAttribute.class).size ());
assertTrue (Attributes.hasAttributeType (m, InheritableAttribute.class));
assertTrue (Attributes.hasAttribute (m, new InheritableAttribute( "sample-privateMethod" ) ));
m = SuperClass.class.getDeclaredMethod ("privateMethod", new Class[]{});
assertEquals (1, Attributes.getAttributes (m).size ());
assertEquals (1, Attributes.getAttributes (m, InheritableAttribute.class).size ());
assertTrue (Attributes.hasAttributeType (m, InheritableAttribute.class));
assertTrue (Attributes.hasAttribute (m, new InheritableAttribute( "super-privateMethod" ) ));
}
public void testFieldNonInheritance () throws Exception {
Field f = SuperClass.class.getField ("field");
assertEquals (2, Attributes.getAttributes (f).size ());
assertEquals (1, Attributes.getAttributes (f, NonInheritableAttribute.class).size ());
assertEquals (1, Attributes.getAttributes (f, InheritableAttribute.class).size ());
assertTrue (Attributes.hasAttributeType (f, NonInheritableAttribute.class));
assertTrue (Attributes.hasAttributeType (f, InheritableAttribute.class));
assertTrue (Attributes.hasAttribute (f, new NonInheritableAttribute()));
assertTrue (Attributes.hasAttribute (f, new InheritableAttribute( "super-field" )));
f = Sample.class.getField ("field");
assertEquals (1, Attributes.getAttributes (f).size ());
assertEquals (1, Attributes.getAttributes (f, NonInheritableAttribute.class).size ());
assertTrue (Attributes.hasAttributeType (f, NonInheritableAttribute.class));
assertTrue (Attributes.hasAttribute (f, new NonInheritableAttribute()));
f = SuperClass.class.getField ("noAttributesInSubClass");
assertEquals (1, Attributes.getAttributes (f).size ());
assertEquals (1, Attributes.getAttributes (f, InheritableAttribute.class).size ());
assertTrue (Attributes.hasAttribute (f, new InheritableAttribute( "super-noattrs" )));
assertTrue (Attributes.hasAttributeType (f, InheritableAttribute.class));
f = Sample.class.getField ("noAttributesInSubClass");
assertEquals (0, Attributes.getAttributes (f).size ());
assertEquals (0, Attributes.getAttributes (f, InheritableAttribute.class).size ());
assertTrue (!Attributes.hasAttribute (f, new InheritableAttribute( "super-noattrs" )));
assertTrue (!Attributes.hasAttributeType (f, InheritableAttribute.class));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org