001: /**
002: * Licensed to the Apache Software Foundation (ASF) under one
003: * or more contributor license agreements. See the NOTICE file
004: * distributed with this work for additional information
005: * regarding copyright ownership. The ASF licenses this file
006: * to you under the Apache License, Version 2.0 (the
007: * "License"); you may not use this file except in compliance
008: * with the License. You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing,
013: * software distributed under the License is distributed on an
014: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015: * KIND, either express or implied. See the License for the
016: * specific language governing permissions and limitations
017: * under the License.
018: */package org.apache.cxf.systest.coloc;
019:
020: import javax.xml.namespace.QName;
021: import javax.xml.ws.Holder;
022:
023: import static junit.framework.Assert.assertEquals;
024:
025: import org.apache.headers.coloc.types.HeaderInfo;
026: import org.apache.headers.coloc.types.InHeaderResponseT;
027: import org.apache.headers.coloc.types.InHeaderT;
028: import org.apache.headers.coloc.types.InoutHeaderResponseT;
029: import org.apache.headers.coloc.types.InoutHeaderT;
030: import org.apache.headers.coloc.types.OutHeaderResponseT;
031: import org.apache.headers.coloc.types.OutHeaderT;
032: import org.apache.headers.doc_lit.HeaderTester;
033:
034: import org.junit.Before; //import org.junit.Ignore;
035: import org.junit.Test;
036:
037: /**
038: * This class invokes the service described in /wsdl/header_doc_lit.wsdl.
039: * This WSDL contains operations with in-out parameters.
040: * It sets up the a client in "testColoc()" to send requests to the
041: * colco server which is listening on port 9001 (SOAP/HTTP).
042: * The subclass defines where CXF configuration and the
043: * target server (transport, etc).
044: *
045: */
046: public abstract class AbstractHeaderServiceDocLitTest extends
047: AbstractColocTest {
048: static final QName SERVICE_NAME = new QName(
049: "http://apache.org/headers/doc_lit", "SOAPHeaderService");
050: static final QName PORT_NAME = new QName(
051: "http://apache.org/headers/doc_lit", "SoapPort9000");
052: static final String WSDL_LOCATION = "/wsdl/header_doc_lit.wsdl";
053:
054: private HeaderTester service;
055:
056: @Before
057: public void setUp() throws Exception {
058: super .setUp();
059: service = getPort(getServiceQname(), getPortQName(),
060: getWsdlLocation(), HeaderTester.class);
061: }
062:
063: /**
064: * The client exercise the service's method here.
065: *
066: */
067: @Test
068: public void testInHeaderParts() {
069: for (int idx = 0; idx < 2; idx++) {
070: verifyInHeaderParts(service);
071: }
072: }
073:
074: @Test
075: public void testInOutHeaderParts() {
076: for (int idx = 0; idx < 2; idx++) {
077: verifyInOutHeaderParts(service);
078: }
079: }
080:
081: @Test
082: public void testOutHeaderParts() {
083: for (int idx = 0; idx < 2; idx++) {
084: verifyOutHeaderParts(service);
085: }
086: }
087:
088: @Test
089: public void testAll() {
090: for (int idx = 0; idx < 2; idx++) {
091: verifyInHeaderParts(service);
092: verifyInOutHeaderParts(service);
093: verifyOutHeaderParts(service);
094: }
095: }
096:
097: protected void verifyInHeaderParts(HeaderTester ht) {
098: getLogger().debug("Client: calling inHeader");
099: InHeaderT inHeader = new InHeaderT();
100: inHeader.setRequestType(HeaderTesterUtil.IN_REQUEST_TYPE);
101:
102: HeaderInfo headerInfo = new HeaderInfo();
103: headerInfo.setMessage(HeaderTesterUtil.IN_MESSAGE);
104: headerInfo.setOriginator(HeaderTesterUtil.IN_ORIGINATOR);
105:
106: InHeaderResponseT inHeaderResponse = ht.inHeader(inHeader,
107: headerInfo);
108: assertEquals(HeaderTesterUtil.OUT_RESPONSE_TYPE,
109: inHeaderResponse.getResponseType());
110: }
111:
112: protected void verifyInOutHeaderParts(HeaderTester ht) {
113: getLogger().debug("Client: calling inoutHeader");
114: InoutHeaderT inoutHeader = new InoutHeaderT();
115: inoutHeader
116: .setRequestType(HeaderTesterUtil.INOUT_REQUEST_TYPE_IN);
117:
118: HeaderInfo headerInfo = new HeaderInfo();
119: headerInfo.setMessage(HeaderTesterUtil.INOUT_MESSAGE_IN);
120: headerInfo.setOriginator(HeaderTesterUtil.INOUT_ORIGINATOR_IN);
121:
122: Holder<HeaderInfo> holder = new Holder<HeaderInfo>();
123: holder.value = headerInfo;
124: InoutHeaderResponseT inoutHeaderResponse = ht.inoutHeader(
125: inoutHeader, holder);
126:
127: assertEquals(HeaderTesterUtil.INOUT_REQUEST_TYPE_OUT,
128: inoutHeaderResponse.getResponseType());
129: assertNotSame(HeaderTesterUtil.INOUT_REQUEST_TYPE_OUT,
130: inoutHeader.getRequestType());
131: assertEquals(HeaderTesterUtil.INOUT_MESSAGE_OUT, holder.value
132: .getMessage());
133: assertEquals(HeaderTesterUtil.INOUT_ORIGINATOR_OUT,
134: holder.value.getOriginator());
135:
136: }
137:
138: protected void verifyOutHeaderParts(HeaderTester ht) {
139: getLogger().debug("Client: calling outHeader");
140: OutHeaderT outHeader = new OutHeaderT();
141: outHeader.setRequestType(HeaderTesterUtil.OUT_REQUEST_TYPE);
142:
143: OutHeaderResponseT theResponse = new OutHeaderResponseT();
144: theResponse.setResponseType("bogus");
145: Holder<OutHeaderResponseT> respHolder = new Holder<OutHeaderResponseT>();
146: respHolder.value = theResponse;
147:
148: Holder<HeaderInfo> holder = new Holder<HeaderInfo>();
149: HeaderInfo headerInfo = new HeaderInfo();
150: headerInfo.setMessage(HeaderTesterUtil.OUT_MESSAGE_IN);
151: headerInfo.setOriginator(HeaderTesterUtil.OUT_ORIGINATOR_IN);
152: holder.value = headerInfo;
153:
154: ht.outHeader(outHeader, respHolder, holder);
155: assertEquals(HeaderTesterUtil.OUT_MESSAGE_OUT, holder.value
156: .getMessage());
157: assertEquals(HeaderTesterUtil.OUT_ORIGINATOR_OUT, holder.value
158: .getOriginator());
159: assertEquals(HeaderTesterUtil.OUT_RESPONSE_TYPE,
160: respHolder.value.getResponseType());
161: }
162:
163: protected String getWsdlLocation() {
164: return WSDL_LOCATION;
165: }
166:
167: protected QName getServiceQname() {
168: return SERVICE_NAME;
169: }
170:
171: protected QName getPortQName() {
172: return PORT_NAME;
173: }
174:
175: protected HeaderTester getService() {
176: return service;
177: }
178:
179: }
|