/* * 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.conversation.id; import org.apache.tuscany.sca.vtest.utilities.ServiceFinder; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; /** * */ public class ConversationIDTestCase { protected static String compositeName = "conversation-id.composite"; protected static AService aService = null; @BeforeClass public static void init() throws Exception { try { System.out.println("Setting up"); ServiceFinder.init(compositeName); aService = ServiceFinder.getService(AService.class, "AComponent"); } catch (Exception ex) { ex.printStackTrace(); } } @AfterClass public static void destroy() throws Exception { System.out.println("Cleaning up"); ServiceFinder.cleanup(); } /** * Lines 504, 505 *

* If a protected or public field or setter method is annotated with * "@ConversationID", then the conversation ID for the conversation is * injected onto the field */ @Test public void idAnnotation() throws Exception { aService.testAnnotation(); } /** * Lines 505 *

* The type of the field is not necessarily String */ @Test public void idAnnotation2() throws Exception { aService.testAnnotation2(); } /** * Lines 505, 506 *

* System generated conversation IDs are always strings */ @Test public void idAnnotation3() throws Exception { aService.testAnnotation3(); } /** * Lines 506, 507 *

* ... but application generated conversation IDs may be other complex * types. *

* Lines 513, 514 *

* ... To do this, the client would not use reference injection, but would * use the of ServiceReference.setConversationID() API. */ @Test public void idAnnotation4() throws Exception { aService.testAnnotation4(); } /** * Lines 522, 523 *

* Whether the conversation ID is chosen by the client or is generated by * the system, the client may access the conversation ID by calling * ServiceReference.getConversationID(). *

* This test is following updates to this section of the specification per * the OASIS TC under issue JAVA-31. The updated text reads: "...by calling * getConversationID() on the current conversation object". */ @Test public void idAnnotation5() throws Exception { aService.testAnnotation5(); } }