blob: 8bacf1306312ccc5a9ecebed3c4e1f523df08632 [file] [log] [blame]
/*
* 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.itest.databindings.jaxb;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import junit.framework.Assert;
import org.apache.tuscany.sca.node.Contribution;
import org.apache.tuscany.sca.node.Node;
import org.apache.tuscany.sca.node.NodeFactory;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* @version $Rev$ $Date$
*/
public class DatabindingTestCase {
private static Node node;
/**
* Runs once before running the tests
*/
@BeforeClass
public static void setUp() throws Exception {
try {
NodeFactory factory = NodeFactory.newInstance();
node = factory.createNode(new File("src/main/resources/helloservice.composite").toURI().toURL().toString(),
new Contribution("TestContribution", new File("src/main/resources/").toURI().toURL().toString()));
node.start();
} catch(Throwable e) {
e.printStackTrace();
}
}
/**
* Runs once after running the tests
*/
@AfterClass
public static void tearDown() {
node.stop();
}
/**
* Invokes the HelloServiceSimple service using SCA binding.
* Service method invoked is getGreetings.
*/
@Test
public void testSCA() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
performTest(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using SCA binding.
* Service method invoked is getGreetingsArray.
*/
@Test
public void testSCAArray() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
performTestArray(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using SCA binding.
* Service method invoked is getGreetingsList.
*/
@Test
public void testSCAList() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
performTestList(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using SCA binding.
* Service method invoked is getGreetingsArrayList.
*/
@Test
public void testSCAArrayList() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
performTestArrayList(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using SCA binding.
* Service method invoked is getGreetingsMap.
*/
@Test
public void testSCAMap() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
performTestMap(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using SCA binding.
* Service method invoked is getGreetingsHashMap.
*/
@Test
public void testSCAHashMap() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
performTestHashMap(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using SCA binding.
* Service method invoked is getGreetingsVarArgs.
*/
@Test
public void testSCAVarArgs() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
performTestVarArgs(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using WS binding.
* Service method invoked is getGreetings.
*/
@Test
public void testWS() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
performTest(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using WS binding.
* Service method invoked is getGreetingsArray.
*/
@Test
public void testWSArray() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
performTestArray(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using WS binding.
* Service method invoked is getGreetingsList.
*/
@Test
public void testWSList() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
performTestList(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using WS binding.
* Service method invoked is getGreetingsArrayList.
*/
@Test
public void testWSArrayList() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
performTestArrayList(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using WS binding.
* Service method invoked is getGreetingsMap.
*/
@Test
public void testWSMap() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
performTestMap(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using WS binding.
* Service method invoked is getGreetingsHashMap.
*/
@Test
public void testWSHashMap() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
performTestHashMap(helloServiceSimpleClient);
}
/**
* Invokes the HelloServiceSimple service using WS binding.
* Service method invoked is getGreetingsVarArgs.
*/
@Test
public void testWSVarArgs() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
performTestVarArgs(helloServiceSimpleClient);
}
/**
* Invokes the HelloLocalServiceSimple service using SCA binding.
* Service method invoked is getGreetings.
*/
@Test
public void testSCALocal() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
performTest(helloServiceSimpleClient);
}
/**
* Invokes the HelloLocalServiceSimple service using SCA binding.
* Service method invoked is getGreetingsArray.
*/
@Test
public void testSCALocalArray() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
performTestArray(helloServiceSimpleClient);
}
/**
* Invokes the HelloLocalServiceSimple service using SCA binding.
* Service method invoked is getGreetingsList.
*/
@Test
public void testSCALocalList() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
performTestList(helloServiceSimpleClient);
}
/**
* Invokes the HelloLocalServiceSimple service using SCA binding.
* Service method invoked is getGreetingsArrayList.
*/
@Test
public void testSCALocalArrayList() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
performTestArrayList(helloServiceSimpleClient);
}
/**
* Invokes the HelloLocalServiceSimple service using SCA binding.
* Service method invoked is getGreetingsMap.
*/
@Test
public void testSCALocalMap() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
performTestMap(helloServiceSimpleClient);
}
/**
* Invokes the HelloLocalServiceSimple service using SCA binding.
* Service method invoked is getGreetingsHashMap.
*/
@Test
public void testSCALocalHashMap() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
performTestHashMap(helloServiceSimpleClient);
}
/**
* Invokes the HelloLocalServiceSimple service using SCA binding.
* Service method invoked is getGreetingsVarArgs.
*/
@Test
public void testSCALocalVarArgs() throws Exception {
HelloServiceSimpleClient helloServiceSimpleClient = node.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
performTestVarArgs(helloServiceSimpleClient);
}
private void performTest(HelloServiceSimpleClient helloServiceSimpleClient) {
String name = "Pandu";
String resp = helloServiceSimpleClient.getGreetingsForward(name);
Assert.assertEquals("Hello "+name, resp);
}
private void performTestArray(HelloServiceSimpleClient helloServiceSimpleClient) {
String[] names = {"Me", "Pandu"};
String[] resps = helloServiceSimpleClient.getGreetingsArrayForward(names);
for(int i = 0; i < names.length; ++i) {
Assert.assertEquals("Hello "+names[i], resps[i]);
}
}
private void performTestList(HelloServiceSimpleClient helloServiceSimpleClient) {
List<String> namesList = new ArrayList<String>();
namesList.add("Me");
namesList.add("Pandu");
namesList.add("Chinnipandu");
List<String> respList = helloServiceSimpleClient.getGreetingsListForward(namesList);
Assert.assertEquals(namesList.size(), respList.size());
for(int i = 0; i < namesList.size(); ++i) {
Assert.assertEquals("Hello "+namesList.get(i), respList.get(i));
}
}
private void performTestArrayList(HelloServiceSimpleClient helloServiceSimpleClient) {
ArrayList<String> namesList = new ArrayList<String>();
namesList.add("Me");
namesList.add("Pandu");
namesList.add("Chinnipandu");
ArrayList<String> respList = helloServiceSimpleClient.getGreetingsArrayListForward(namesList);
Assert.assertEquals(namesList.size(), respList.size());
for(int i = 0; i < namesList.size(); ++i) {
Assert.assertEquals("Hello "+namesList.get(i), respList.get(i));
}
}
private void performTestMap(HelloServiceSimpleClient helloServiceSimpleClient) {
Map<String, String> namesMap = new HashMap<String, String>();
namesMap.put("Me", null);
namesMap.put("Pandu", null);
namesMap.put("Chinnipandu", null);
Map<String, String> respMap = helloServiceSimpleClient.getGreetingsMapForward(namesMap);
Assert.assertEquals(namesMap.keySet().size(), respMap.keySet().size());
for(Map.Entry<String, String> entry: namesMap.entrySet()) {
Assert.assertEquals("Hello "+entry.getKey(), respMap.get(entry.getKey()));
}
}
private void performTestHashMap(HelloServiceSimpleClient helloServiceSimpleClient) {
HashMap<String, String> namesMap = new HashMap<String, String>();
namesMap.put("Me", null);
namesMap.put("Pandu", null);
namesMap.put("Chinnipandu", null);
Map<String, String> respMap = helloServiceSimpleClient.getGreetingsHashMapForward(namesMap);
Assert.assertEquals(namesMap.keySet().size(), respMap.keySet().size());
for(Map.Entry<String, String> entry: namesMap.entrySet()) {
Assert.assertEquals("Hello "+entry.getKey(), respMap.get(entry.getKey()));
}
}
private void performTestVarArgs(HelloServiceSimpleClient helloServiceSimpleClient) {
String[] names = { "Me", "You", "Pandu" }; // Do not change the array size from 3.
String expected = "Hello Me You Pandu";
String actual = helloServiceSimpleClient.getGreetingsVarArgsForward(names[0], names[1], names[2]);
Assert.assertEquals(expected, actual);
}
}