package jboss.ws;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import jboss.ws.hello.client.Hello;
import jboss.ws.hello.client.HelloService;
import jboss.ws.hello.client.Person;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.headers.Header;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class HelloWorldTest {
private Client client = null;;
private Hello port = null;
private HelloService service = null;
@Before
public void setUp() {
service = new HelloService();
port = service.getHelloPort();
client = ClientProxy.getClient(port);
client.getInInterceptors().add(new LoggingInInterceptor());
client.getOutInterceptors().add(new LoggingOutInterceptor());
}
@Test
public void testSayHello() throws Exception {
Person person = new Person();
person.setFirstName("David");
person.setLastName("F");
Map<String, Object> requestContext = client.getRequestContext();
DocumentBuilder builder = null;
try {
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
Document doc = builder.newDocument();
Element elementCredentials = doc.createElement("AuthHeader");
Element elementStatus = doc.createElement("status");
elementStatus.setTextContent("test");
elementCredentials.appendChild(elementStatus);
Header header = new Header(new QName("AuthHeader"), elementCredentials);
List<Header> headList = new ArrayList<Header>();
headList.add(header);
requestContext.put(Header.HEADER_LIST, headList);
Object[] returnedObjects = client.invoke("sayHello", new Object[] {
person });
String expected = "Hello David . F by JBoss 6 WS with CXF implementation.";
String result = (String) returnedObjects[0];
assertEquals(expected, result);
}
}