diff options
Diffstat (limited to 'branches/sca-java-integration/spec/sca-api-r0.95/src/test/java/org/osoa/sca')
2 files changed, 119 insertions, 0 deletions
diff --git a/branches/sca-java-integration/spec/sca-api-r0.95/src/test/java/org/osoa/sca/annotations/CallbackTestCase.java b/branches/sca-java-integration/spec/sca-api-r0.95/src/test/java/org/osoa/sca/annotations/CallbackTestCase.java new file mode 100644 index 0000000000..c4506713f6 --- /dev/null +++ b/branches/sca-java-integration/spec/sca-api-r0.95/src/test/java/org/osoa/sca/annotations/CallbackTestCase.java @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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"); + } +} diff --git a/branches/sca-java-integration/spec/sca-api-r0.95/src/test/java/org/osoa/sca/annotations/usage/CallbackType.java b/branches/sca-java-integration/spec/sca-api-r0.95/src/test/java/org/osoa/sca/annotations/usage/CallbackType.java new file mode 100644 index 0000000000..962c7bef51 --- /dev/null +++ b/branches/sca-java-integration/spec/sca-api-r0.95/src/test/java/org/osoa/sca/annotations/usage/CallbackType.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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; + } +} |