/*
* 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.wsbinding.wsdlelement.service;
import static org.junit.Assert.fail;
import junit.framework.Assert;
import org.apache.tuscany.sca.vtest.utilities.ServiceFinder;
import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.AService;
import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.DService;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Tests the simplest form of the binding element wsdl.service with WSDL
* document described in section section 2.1 of SCA Web Services Binding
* V1.00
*/
public class WsdlElementServiceTestCase {
protected static ServiceFinder serviceFinder;
protected static String compositeName = "wsdlelement.service.composite";
protected static AService a1;
protected static AService a2;
protected static AService a3;
protected static AService a4;
protected static AService a5;
protected static DService d;
@BeforeClass
public static void init() throws Exception {
try {
System.out.println("Setting up");
ServiceFinder.init(compositeName);
a1 = ServiceFinder.getService(AService.class, "AComponent1");
a2 = ServiceFinder.getService(AService.class, "AComponent2");
a3 = ServiceFinder.getService(AService.class, "AComponent3");
a4 = ServiceFinder.getService(AService.class, "AComponent4");
a5 = ServiceFinder.getService(AService.class, "AComponent5");
d = ServiceFinder.getService(DService.class, "DComponent1");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* Lines 38-41:
* Service:
* #wsdl.service()
* In this case, all the endpoints in the WSDL Service that have equivalent
* PortTypes with the SCA service or reference must be available to the SCA
* service or reference.
*
* Tests wsdl.service(BService)
*/
@Test
public void testWsdlElementService1() throws Exception {
String aName = a1.getName();
String b1Str1 = a1.getB1String("string1");
String b1Str2 = a1.getB1String2("string2", "string3");
int b1Int = a1.getB1Int(1000);
System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
Assert.assertEquals("AService", aName);
Assert.assertEquals("string1", b1Str1);
Assert.assertEquals("string2string3", b1Str2);
Assert.assertEquals(1000, b1Int);
}
/**
* Lines 38-41:
* Service:
*
* Tests wsdl.service(BService2) with with BService where the service
* does not define getString2, so exceptions are expected.
*/
@Test
public void testWsdlElementService2() throws Exception {
String aName = a2.getName();
System.out.println(aName + ": ");
try {
a2.getB1String("string1");
fail("Should not be able to call getString");
} catch (Exception e) {
System.out.println(" Exception is expected: " + e.toString());
}
try {
a2.getB1String2("string2", "string3");
fail("Should not be able to call getString2");
} catch (Exception e) {
System.out.println(" Exception is expected: " + e.toString());
}
try {
a2.getB1Int(2000);
fail("Should not be able to call getInt");
} catch (Exception e) {
System.out.println(" Exception is expected: " + e.toString());
}
}
/**
* Lines 38-41:
* Service:
*
* Tests wsdl.service(BService2) with BService2
*/
@Test
public void testWsdlElementService3() throws Exception {
String aName = a3.getName();
String b2Str1 = a3.getB2String("string1");
int b2Int = a3.getB2Int(1000);
System.out.println(aName + ": " + b2Str1 + ", " + b2Int);
Assert.assertEquals("AService", aName);
Assert.assertEquals("string1", b2Str1);
Assert.assertEquals(1000, b2Int);
}
/**
* Lines 38-41:
* Service:
*
* Tests two references using wsdl.service.
*/
@Test
public void testWsdlElementService4() throws Exception {
String dName = d.getName();
String b1Str1 = d.getB1String("string1");
String b1Str2 = d.getB1String2("string2", "string3");
String c1Str1 = d.getC1String("string5");
String c1Str2 = d.getC1String2("string6", "string7");
int b1Int = d.getB1Int(4000);
float c1Float = d.getC1Float((float) 8.8);
Integer c1Integer = d.getC1Integer(new Integer(9000));
System.out.println(dName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int + ", " + c1Str1 + ", " + c1Str2 + ", " + c1Float + ", " + c1Integer);
Assert.assertEquals("DService", dName);
Assert.assertEquals("string1", b1Str1);
Assert.assertEquals("string2string3", b1Str2);
Assert.assertEquals(4000, b1Int);
Assert.assertEquals("string5", c1Str1);
Assert.assertEquals("string6string7", c1Str2);
Assert.assertEquals((float) 8.8, c1Float);
Assert.assertEquals(new Integer(9000), c1Integer);
}
/**
* Lines 38-41:
* Service:
*
* Tests mixed bindings of using wsdl.port, wsdl.service, wsdl.binding,
* and soap 1.2
*
*/
@Test
public void testWsdlElementService5() throws Exception {
String aName = a4.getName();
String b1Str1 = a4.getB1String("port");
String b1Str2 = a4.getB1String2("string1", "string2");
int b1Int = a4.getB1Int(1000);
System.out.println(aName);
System.out.println(" b1: " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
Assert.assertEquals("AService", aName);
Assert.assertEquals("port", b1Str1);
Assert.assertEquals("string1string2", b1Str2);
Assert.assertEquals(1000, b1Int);
String b2Str1 = a4.getB2String("service");
int b2Int = a4.getB2Int(2000);
System.out.println(" b2: " + b2Str1 + ", " + b2Int);
Assert.assertEquals("AService", aName);
Assert.assertEquals("service", b2Str1);
Assert.assertEquals(2000, b2Int);
String b3Str1 = a4.getB3String("binding");
int b3Int = a4.getB3Int(3000);
System.out.println(" b3: " + b3Str1 + ", " + b3Int);
Assert.assertEquals("binding", b3Str1);
Assert.assertEquals(3000, b3Int);
String b4Str1 = a4.getB4String("soap12");
String b4Str2 = a4.getB4String2("string3", "string4");
int b4Int = a4.getB4Int(4000);
System.out.println(" b4: " + b4Str1 + ", " + b4Str2 + ", " + b4Int);
Assert.assertEquals("soap12", b4Str1);
Assert.assertEquals("string3string4", b4Str2);
Assert.assertEquals(4000, b4Int);
}
/**
* Lines 38-41:
* Service:
*
* Tests wsdl.service(BService3) which uses SOAP 1.2
*/
@Test
public void testWsdlElementService6() throws Exception {
String aName = a5.getName();
String b1Str1 = a5.getB1String("string1");
String b1Str2 = a5.getB1String2("string2", "string3");
int b1Int = a5.getB1Int(6000);
System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
Assert.assertEquals("AService", aName);
Assert.assertEquals("string1", b1Str1);
Assert.assertEquals("string2string3", b1Str2);
Assert.assertEquals(6000, b1Int);
}
@AfterClass
public static void destroy() throws Exception {
System.out.println("Cleaning up");
ServiceFinder.cleanup();
}
}