diff options
Diffstat (limited to 'sandbox/ant/sca/trunk/vtest/java-api/annotations/reference/src/test')
-rw-r--r-- | sandbox/ant/sca/trunk/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/sandbox/ant/sca/trunk/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java b/sandbox/ant/sca/trunk/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java deleted file mode 100644 index 1fe50b4ea7..0000000000 --- a/sandbox/ant/sca/trunk/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * 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.apache.tuscany.sca.vtest.javaapi.annotations.reference; - -import static org.junit.Assert.fail; -import junit.framework.Assert; - -import org.apache.tuscany.sca.vtest.utilities.ServiceFinder; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; - -/** - * This test class tests the "@Reference" annotation described in section 1.8.14 - */ -public class ReferenceAnnotationTestCase { - - protected static String compositeName = "ab.composite"; - protected static AService a; - - @BeforeClass - public static void init() throws Exception { - try { - System.out.println("Setting up"); - ServiceFinder.init(compositeName); - a = ServiceFinder.getService(AService.class, "AComponent"); - - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - @AfterClass - public static void destroy() throws Exception { - - System.out.println("Cleaning up"); - ServiceFinder.cleanup(); - } - - /** - * Temporary test unrelated to spec test effort. Remove after resolution of - */ - @Test - @Ignore - // JIRA T-2145 - public void bogusComponentName() throws Exception { - ServiceFinder.init(compositeName); - try { - AService a = ServiceFinder.getService(AService.class, "AReallyBogusComponentName"); - if (a == null) - fail("Should have thrown an exception rather than return null"); - else - fail("Should have thrown an exception rather than return a proxy"); - } finally { - ServiceFinder.cleanup(); - } - - } - - /** - * Lines 1404, 1405, 1406 <br> - * The "@Reference" annotation type is used to annotate a Java class field - * or a setter method that is used to inject a service that resolves the - * reference. The interface of the service injected is defined by the type - * of the Java class field or the type of the setter method input argument. - * <p> - * This tests the use of the three usages of the "@Reference" annotation<br> - * B1 is injected via field injection <br> - * B2 is injected via constructor parameter <br> - * B3 is injected via setter method - */ - @Test - public void atReference1() throws Exception { - - Assert.assertEquals("BService", a.getB1Name()); - Assert.assertEquals("BService", a.getB2Name()); - Assert.assertEquals("BService", a.getB3Name()); - - } - - /** - * Lines 1407, 1408, 1409, 1410 <br> - * References may also be injected via public setter methods even when the - * "@Reference" annotation is not present. However, the "@Reference" - * annotation must be used in order to inject a reference onto a non public - * field. In the case where there is no "@Reference" annotation, the name of - * the reference is the same as the name of the field or setter. - * <p> - * B4 is injected via field injection. Public, Non-annotated <br> - * B5 is expected to fail field injection. Non-Public, Non-Annotated <br> - * B6 is injected via setter injection. Public, Non-Annotated - */ - @Test - public void atReference2() throws Exception { - AService anotherA = ServiceFinder.getService(AService.class, "AUnannotatedComponent"); - - Assert.assertFalse(anotherA.isB4Null()); - Assert.assertTrue(anotherA.isB5Null()); - Assert.assertFalse(anotherA.isB6Null()); - - Assert.assertEquals("BService", anotherA.getB4Name()); - try { - anotherA.getB5Name(); - fail("getB5Name expected to fail with NPE"); - } catch (NullPointerException e) { - } - Assert.assertEquals("BService", anotherA.getB6Name()); - - } - - /** - * Lines 1411 <br> - * Where there is both a setter method and a field for a reference, the - * setter method is used. - * <p> - * B7 has both field and setter annotated. The setter must be called - */ - @Test - public void atReference3() throws Exception { - Assert.assertTrue(a.isB7SetterCalled()); - } - - /** - * Lines 1413, 1414, 1415 <br> - * The "@Reference" annotation has the following attributes: <br> • name - * (optional) – the name of the reference, defaults to the name of the field - * of the Java class <br> - * required (optional) – whether injection of service or services is - * required. Defaults to true. - * <p> - * Reference and field have different names<br> - * B8 is field injected<br> - * B9 is setter injected - */ - @Test - public void atReference4() throws Exception { - Assert.assertEquals("BService", a.getB8Name()); - Assert.assertEquals("BService", a.getB9Name()); - } - - /** - * Lines 1457 to 1459<br> - * If the reference is not an array or collection, then the implied - * component type has a reference with a multiplicity of either 0..1 or 1..1 - * depending on the value of the - * - * @Reference required attribute – 1..1 applies if required=true.<br> - * <p> - * B10 is field injected, required=false, and multiplicity="0..1"<br> - * B11 is field injected, required=false, and multiplicity="1..1"<br> - * B12 is setter injected, required=true, and multiplicity="1..1" - */ - @Test - public void atReference5() throws Exception { - Assert.assertEquals("BService", a.getB10Name()); - Assert.assertEquals("BService", a.getB11Name()); - Assert.assertEquals("BService", a.getB12Name()); - } - - /** - * Lines 1461 to 1463<br> - * If the reference is defined as an array or as a java.util.Collection, - * then the implied component type has a reference with a multiplicity of - * either 1..n or 0..n, depending on whether the required attribute of the - * "@Reference" annotation is set to true or false – 1..n applies if - * required=true.<br> - * <p> - * B13 is a java.util.List, field injected, required=false, - * multiplicity="0..n", and no target<br> - * B14 is a java.util.List, setter injected, required=true, - * multiplicity="1..n", and one target<br> - * B15 is an array, field injected, required=true, multiplicity="1..n", and - * two targets - */ - @Test - public void atReference6() throws Exception { - Assert.assertEquals(0, a.getB13Size()); - Assert.assertEquals("BService", a.getB14Name(0)); - Assert.assertEquals(1, a.getB14Size()); - Assert.assertEquals("BService", a.getB15Name(0)); - Assert.assertEquals("BService", a.getB15Name(1)); - Assert.assertEquals(2, a.getB15Size()); - } - - /** - * Lines 1415 <br> - * required (optional) - whether injection of service or services is - * required. Defaults to true. - * <p> - * b16 and b17 is defined as "@Reference(required=false)" and AComponent - * does not define reference for them - */ - @Test - public void atReference7() throws Exception { - Assert.assertTrue(a.isB16Null()); - Assert.assertTrue(a.isB17Null()); - } - - /** - * Java Component Implementation Spec - * Section 1.2.7 - * Line 361 when @Property and @Reference annotations are present - * then unannotated fields are ignored - */ - @Test - public void atReference8() throws Exception { - Assert.assertTrue(a.isB4Null()); - Assert.assertTrue(a.isB5Null()); - Assert.assertTrue(a.isB6Null()); - } -} |