diff options
Diffstat (limited to 'sca-java-1.x/tags/java-M1-20060522/java/spec/sca/src/test')
2 files changed, 115 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-M1-20060522/java/spec/sca/src/test/java/org/osoa/sca/annotations/CallbackTestCase.java b/sca-java-1.x/tags/java-M1-20060522/java/spec/sca/src/test/java/org/osoa/sca/annotations/CallbackTestCase.java new file mode 100644 index 0000000000..0fa278110a --- /dev/null +++ b/sca-java-1.x/tags/java-M1-20060522/java/spec/sca/src/test/java/org/osoa/sca/annotations/CallbackTestCase.java @@ -0,0 +1,68 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * 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.osoa.sca.annotations; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +import junit.framework.TestCase; +import org.osoa.sca.annotations.usage.CallbackType; + +/** + * Test case for callback annotation. + * + * @version $Rev$ $Date$ + */ +public class CallbackTestCase extends TestCase { + private Class<?> type; + private Field field; + private Method method; + + /** + * Test annotation of a callback interface. + */ + public void testTypeDeclaration() { + assertTrue(type.isAnnotationPresent(Callback.class)); + Callback callback = type.getAnnotation(Callback.class); + assertEquals(Object.class, callback.value()); + } + + /** + * Test annotation of a private field. + */ + public void testField() { + assertTrue(field.isAnnotationPresent(Callback.class)); + Callback callback = field.getAnnotation(Callback.class); + assertEquals(Void.class, callback.value()); + } + + /** + * Test annotation of a method. + */ + public void testMethod() { + assertTrue(method.isAnnotationPresent(Callback.class)); + Callback callback = method.getAnnotation(Callback.class); + assertEquals(Void.class, callback.value()); + } + + protected void setUp() throws Exception { + super.setUp(); + type = CallbackType.class; + field = type.getDeclaredField("cbField"); + method = type.getMethod("cbMethod"); + } +}
\ No newline at end of file diff --git a/sca-java-1.x/tags/java-M1-20060522/java/spec/sca/src/test/java/org/osoa/sca/annotations/usage/CallbackType.java b/sca-java-1.x/tags/java-M1-20060522/java/spec/sca/src/test/java/org/osoa/sca/annotations/usage/CallbackType.java new file mode 100644 index 0000000000..8d75c69ac5 --- /dev/null +++ b/sca-java-1.x/tags/java-M1-20060522/java/spec/sca/src/test/java/org/osoa/sca/annotations/usage/CallbackType.java @@ -0,0 +1,47 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * 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.osoa.sca.annotations.usage; + +import org.osoa.sca.annotations.Callback; + +/** + * Mock object for callback annotation tests. + * + * @version $Rev$ $Date$ + */ +@Callback(Object.class) +public class CallbackType { + @Callback + private Object cbField; + + /** + * Site for testing annotation of a public method. + */ + @Callback + public void cbMethod() { + cbField = new Object(); + } + + /** + * Mock method to make IDEs stop complaining. + * + * @return nothing + */ + public Object getCbField() { + return cbField; + } +} |