use of org.apache.cxf.jaxws.service.AddNumbersSubException in project cxf by apache.
the class CodeFirstTest method testException.
@Test
public void testException() throws Exception {
Hello serviceImpl = new Hello();
try (EndpointImpl ep = new EndpointImpl(getBus(), serviceImpl, (String) null)) {
ep.publish("local://localhost:9090/hello");
ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
QName serviceName = new QName("http://service.jaxws.cxf.apache.org/", "HelloService");
QName portName = new QName("http://service.jaxws.cxf.apache.org/", "HelloPort");
// need to set the same bus with service , so use the ServiceImpl
ServiceImpl service = new ServiceImpl(getBus(), (URL) null, serviceName, null);
service.addPort(portName, "http://schemas.xmlsoap.org/soap/", "local://localhost:9090/hello");
HelloInterface proxy = service.getPort(portName, HelloInterface.class);
ClientProxy.getClient(proxy).getInFaultInterceptors().add(new LoggingInInterceptor());
ClientProxy.getClient(proxy).getInInterceptors().add(new LoggingInInterceptor());
try {
proxy.addNumbers(1, -2);
fail("should throw AddNumbersException");
} catch (AddNumbersException e) {
assertEquals(e.getInfo(), "Sum is less than 0.");
}
try {
proxy.addNumbers(1, 99);
fail("should throw AddNumbersSubException");
} catch (AddNumbersSubException e) {
assertEquals(e.getSubInfo(), "Sum is 100");
} catch (AddNumbersException e) {
fail("should throw AddNumbersSubException");
}
try (AutoCloseable c = (AutoCloseable) proxy) {
assertEquals("Result = 2", proxy.addNumbers(1, 1));
}
try {
proxy.addNumbers(1, 1);
fail("Proxy should be closed");
} catch (IllegalStateException t) {
// this is expected as the client is closed.
}
}
}
Aggregations