use of org.eclipse.scout.jaxws.consumer.jaxwsconsumertestservice.JaxWsConsumerTestServicePortType in project scout.rt by eclipse.
the class AbstractJaxWsClientTest method testAcquirePortInDifferentTransactionsCancelFirstOne.
/**
* Canceling a running web service invocation invalidates the port. This test verifies, that the canceled port is not
* put back into the pool.
*/
@Test
public void testAcquirePortInDifferentTransactionsCancelFirstOne() throws InterruptedException {
final Holder<JaxWsConsumerTestServicePortType> txn1PortHolder = new Holder<>(JaxWsConsumerTestServicePortType.class);
final Holder<JaxWsConsumerTestServicePortType> txn2PortHolder = new Holder<>(JaxWsConsumerTestServicePortType.class);
// This test case expects at most one port in the pool. It is guaranteed by discarding all pooled entries.
BEANS.get(JaxWsConsumerTestClient.class).discardAllPoolEntries();
final CountDownLatch requestRunningLatch = new CountDownLatch(1);
final IFuture<Void> future = Jobs.schedule(new IRunnable() {
@Override
public void run() throws Exception {
JaxWsConsumerTestServicePortType port = BEANS.get(JaxWsConsumerTestClient.class).newInvocationContext().getPort();
txn1PortHolder.setValue(port);
SleepRequest req = new SleepRequest();
req.setMillis(1000);
requestRunningLatch.countDown();
port.sleep(req);
}
}, Jobs.newInput().withRunContext(ServerRunContexts.copyCurrent()).withExceptionHandling(null, true));
requestRunningLatch.await();
SleepUtil.sleepSafe(50, TimeUnit.MILLISECONDS);
Jobs.schedule(new IRunnable() {
@Override
public void run() throws Exception {
future.cancel(true);
}
}, Jobs.newInput().withRunContext(ServerRunContexts.copyCurrent()));
try {
future.awaitDone();
} catch (WebServiceRequestCancelledException e) {
// NOSONAR
// expected
}
assertTrue(future.isCancelled());
ServerRunContexts.copyCurrent().run(new IRunnable() {
@Override
public void run() throws Exception {
JaxWsConsumerTestServicePortType port = BEANS.get(JaxWsConsumerTestClient.class).newInvocationContext().getPort();
assertSendEcho(port, 0);
txn2PortHolder.setValue(port);
}
});
assertDifferentPort(txn1PortHolder.getValue(), txn2PortHolder.getValue());
}
use of org.eclipse.scout.jaxws.consumer.jaxwsconsumertestservice.JaxWsConsumerTestServicePortType in project scout.rt by eclipse.
the class AbstractJaxWsClientTest method testSetupSetHeader.
@Test
public void testSetupSetHeader() {
final String expectedHeader = "test header value";
SetHeaderRequest req = new SetHeaderRequest();
req.setHeaderName(X_SCOUT_JAX_WS_TEST_HEADER);
req.setHeaderValue(expectedHeader);
JaxWsConsumerTestServicePortType port = BEANS.get(JaxWsConsumerTestClient.class).newInvocationContext().getPort();
SetHeaderResponse resp = port.setHeader(req);
assertNotNull(resp);
assertEquals("ok", resp.getMessage());
assertHttpResponseHeader(port, X_SCOUT_JAX_WS_TEST_HEADER, expectedHeader);
}
use of org.eclipse.scout.jaxws.consumer.jaxwsconsumertestservice.JaxWsConsumerTestServicePortType in project scout.rt by eclipse.
the class AbstractJaxWsClientTest method testDifferentPortsInSameTransaction.
/*
* ************************************************************
* Test invoke different web services in same transaction
* ************************************************************/
@Test
public void testDifferentPortsInSameTransaction() {
JaxWsConsumerTestServicePortType echoPort = BEANS.get(JaxWsConsumerTestClient.class).newInvocationContext().getPort();
assertSendEcho(echoPort, 0);
JaxWsPingTestServicePortType pingPort = BEANS.get(JaxWsPingTestClient.class).newInvocationContext().getPort();
assertNotSame(echoPort, pingPort);
PingRequest pingRequest = new PingRequest();
pingRequest.setMessage("ping");
PingResponse pingResponse = pingPort.ping(pingRequest);
assertNotNull(pingResponse);
assertEquals("ping", pingResponse.getMessage());
}
use of org.eclipse.scout.jaxws.consumer.jaxwsconsumertestservice.JaxWsConsumerTestServicePortType in project scout.rt by eclipse.
the class AbstractJaxWsClientTest method testSamePortMultipleTimesSleepWithReadTimeoutCheckResponseHeaders.
@Test
public void testSamePortMultipleTimesSleepWithReadTimeoutCheckResponseHeaders() {
final JaxWsConsumerTestServicePortType port = BEANS.get(JaxWsConsumerTestClient.class).newInvocationContext().withReadTimeout(500, TimeUnit.MILLISECONDS).getPort();
// 1. invoke set header
final String testHeaderValue = "test header value";
SetHeaderRequest headerReq = new SetHeaderRequest();
headerReq.setHeaderName(X_SCOUT_JAX_WS_TEST_HEADER);
headerReq.setHeaderValue(testHeaderValue);
port.setHeader(headerReq);
assertHttpResponseHeader(port, X_SCOUT_JAX_WS_TEST_HEADER, testHeaderValue);
// 2. invoke sleep
SleepRequest req = new SleepRequest();
req.setMillis(5000);
try {
port.sleep(req);
fail("invocation is expected to be cancelled");
} catch (WebServiceException e) {
if (!(e.getCause() instanceof SocketTimeoutException)) {
throw e;
}
}
assertHttpResponseCode(port, 0);
assertHttpResponseHeader(port, X_SCOUT_JAX_WS_TEST_HEADER, null);
// 3. invoke echo
EchoRequest echoReq = new EchoRequest();
echoReq.setMessage("test message");
port.echo(echoReq);
assertHttpResponseCode(port, 200);
assertHttpResponseHeader(port, X_SCOUT_JAX_WS_TEST_HEADER, null);
}
Aggregations