You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2017/07/07 13:02:54 UTC
cxf git commit: [CXF-6889] Creating a dedicated test suite,
more to follow
Repository: cxf
Updated Branches:
refs/heads/master 3182059e0 -> 44b04b36d
[CXF-6889] Creating a dedicated test suite, more to follow
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/44b04b36
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/44b04b36
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/44b04b36
Branch: refs/heads/master
Commit: 44b04b36d31d519d76812a66a96feae5a4814728
Parents: 3182059
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Fri Jul 7 14:02:38 2017 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Fri Jul 7 14:02:38 2017 +0100
----------------------------------------------------------------------
.../cxf/systest/jaxrs/JAXRSAsyncClientTest.java | 42 +----
.../reactive/JAXRSCompletionStageTest.java | 99 ++++++++++++
.../jaxrs/reactive/JAXRSObservableTest.java | 162 +++++++++++++++++++
.../jaxrs/reactive/JAXRSReactiveTest.java | 162 -------------------
4 files changed, 262 insertions(+), 203 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/44b04b36/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java
index 628466f..d0dc048 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java
@@ -27,7 +27,6 @@ import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.CompletionStage;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@@ -386,47 +385,8 @@ public class JAXRSAsyncClientTest extends AbstractBusClientServerTestBase {
wc.close();
}
-
- @Test
- public void testGetBookAsyncStage() throws Exception {
- String address = "http://localhost:" + PORT + "/bookstore/books";
- WebClient wc = createWebClient(address);
- CompletionStage<Book> stage = wc.path("123").rx().get(Book.class);
- Book book = stage.toCompletableFuture().join();
- assertEquals(123L, book.getId());
- }
- @Test
- public void testGetBookAsyncStageThenAcceptAsync() throws Exception {
- String address = "http://localhost:" + PORT + "/bookstore/books";
- WebClient wc = createWebClient(address);
- CompletionStage<Book> stage = wc.path("123").rx().get(Book.class);
- Holder<Book> holder = new Holder<Book>();
- stage.thenApply(v -> {
- v.setId(v.getId() * 2);
- return v;
- }).thenAcceptAsync(v -> {
- holder.value = v;
- });
- Thread.sleep(3000);
- assertEquals(246L, holder.value.getId());
- }
-
- @Test
- public void testGetBookAsyncStage404() throws Exception {
- String address = "http://localhost:" + PORT + "/bookstore/bookheaders/404";
- WebClient wc = createWebClient(address);
- CompletionStage<Book> stage = wc.path("123").rx().get(Book.class);
- try {
- stage.toCompletableFuture().get();
- fail("Exception expected");
- } catch (ExecutionException ex) {
- assertTrue(ex.getCause() instanceof NotFoundException);
- }
-
- }
private WebClient createWebClient(String address) {
- List<Object> providers = new ArrayList<>();
- return WebClient.create(address, providers);
+ return WebClient.create(address);
}
private InvocationCallback<Object> createCallback(final Holder<Object> holder) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/44b04b36/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSCompletionStageTest.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSCompletionStageTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSCompletionStageTest.java
new file mode 100644
index 0000000..b6a4fb7
--- /dev/null
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSCompletionStageTest.java
@@ -0,0 +1,99 @@
+/**
+ * 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.cxf.systest.jaxrs.reactive;
+
+import java.util.concurrent.CompletionStage;
+import java.util.concurrent.ExecutionException;
+
+import javax.ws.rs.NotFoundException;
+import javax.xml.ws.Holder;
+
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.cxf.jaxrs.model.AbstractResourceInfo;
+import org.apache.cxf.systest.jaxrs.Book;
+import org.apache.cxf.systest.jaxrs.BookServerAsyncClient;
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class JAXRSCompletionStageTest extends AbstractBusClientServerTestBase {
+ public static final String PORT = BookServerAsyncClient.PORT;
+
+ @BeforeClass
+ public static void startServers() throws Exception {
+ AbstractResourceInfo.clearAllMaps();
+ assertTrue("server did not launch correctly",
+ launchServer(BookServerAsyncClient.class, true));
+ createStaticBus();
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ String property = System.getProperty("test.delay");
+ if (property != null) {
+ Thread.sleep(Long.valueOf(property));
+ }
+ }
+
+
+ @Test
+ public void testGetBookAsyncStage() throws Exception {
+ String address = "http://localhost:" + PORT + "/bookstore/books";
+ WebClient wc = createWebClient(address);
+ CompletionStage<Book> stage = wc.path("123").rx().get(Book.class);
+ Book book = stage.toCompletableFuture().join();
+ assertEquals(123L, book.getId());
+ }
+ @Test
+ public void testGetBookAsyncStageThenAcceptAsync() throws Exception {
+ String address = "http://localhost:" + PORT + "/bookstore/books";
+ WebClient wc = createWebClient(address);
+ CompletionStage<Book> stage = wc.path("123").rx().get(Book.class);
+ Holder<Book> holder = new Holder<Book>();
+ stage.thenApply(v -> {
+ v.setId(v.getId() * 2);
+ return v;
+ }).thenAcceptAsync(v -> {
+ holder.value = v;
+ });
+ Thread.sleep(3000);
+ assertEquals(246L, holder.value.getId());
+ }
+
+ @Test
+ public void testGetBookAsyncStage404() throws Exception {
+ String address = "http://localhost:" + PORT + "/bookstore/bookheaders/404";
+ WebClient wc = createWebClient(address);
+ CompletionStage<Book> stage = wc.path("123").rx().get(Book.class);
+ try {
+ stage.toCompletableFuture().get();
+ fail("Exception expected");
+ } catch (ExecutionException ex) {
+ assertTrue(ex.getCause() instanceof NotFoundException);
+ }
+
+ }
+ private WebClient createWebClient(String address) {
+ return WebClient.create(address);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/44b04b36/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSObservableTest.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSObservableTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSObservableTest.java
new file mode 100644
index 0000000..08106ea
--- /dev/null
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSObservableTest.java
@@ -0,0 +1,162 @@
+/**
+ * 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.cxf.systest.jaxrs.reactive;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Invocation;
+import javax.ws.rs.core.GenericType;
+
+import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
+
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.cxf.jaxrs.model.AbstractResourceInfo;
+import org.apache.cxf.jaxrs.rx.client.ObservableRxInvoker;
+import org.apache.cxf.jaxrs.rx.client.ObservableRxInvokerProvider;
+import org.apache.cxf.jaxrs.rx.provider.ObservableReader;
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import rx.Observable;
+
+public class JAXRSObservableTest extends AbstractBusClientServerTestBase {
+ public static final String PORT = ReactiveServer.PORT;
+ @BeforeClass
+ public static void startServers() throws Exception {
+ AbstractResourceInfo.clearAllMaps();
+ assertTrue("server did not launch correctly",
+ launchServer(ReactiveServer.class, true));
+ createStaticBus();
+ }
+ @Test
+ public void testGetHelloWorldText() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/text";
+ WebClient wc = WebClient.create(address);
+ String text = wc.accept("text/plain").get(String.class);
+ assertEquals("Hello, world!", text);
+ }
+ @Test
+ public void testGetHelloWorldAsyncText() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textAsync";
+ WebClient wc = WebClient.create(address);
+ String text = wc.accept("text/plain").get(String.class);
+ assertEquals("Hello, world!", text);
+ }
+
+ @Test
+ public void testGetHelloWorldTextObservableSync() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/text";
+ WebClient wc = WebClient.create(address, Collections.singletonList(
+ new ObservableReader<Object>()));
+ GenericType<Observable<String>> genericResponseType =
+ new GenericType<Observable<String>>() {
+ };
+ Observable<String> obs = wc.accept("text/plain").get(genericResponseType);
+ obs.subscribe(s -> assertResponse(s));
+ }
+
+ private void assertResponse(String s) {
+ assertEquals("Hello, world!", s);
+ }
+ @Test
+ public void testGetHelloWorldJson() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textJson";
+ WebClient wc = WebClient.create(address,
+ Collections.singletonList(new JacksonJsonProvider()));
+ HelloWorldBean bean = wc.accept("application/json").get(HelloWorldBean.class);
+ assertEquals("Hello", bean.getGreeting());
+ assertEquals("World", bean.getAudience());
+ }
+ @Test
+ public void testGetHelloWorldJsonList() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textJsonList";
+ doTestGetHelloWorldJsonList(address);
+ }
+ @Test
+ public void testGetHelloWorldJsonImplicitList() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textJsonImplicitList";
+ doTestGetHelloWorldJsonList(address);
+ }
+ @Test
+ public void testGetHelloWorldJsonImplicitListAsync() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textJsonImplicitListAsync";
+ doTestGetHelloWorldJsonList(address);
+ }
+ @Test
+ public void testGetHelloWorldJsonImplicitListAsyncStream() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textJsonImplicitListAsyncStream";
+ doTestGetHelloWorldJsonList(address);
+ }
+ private void doTestGetHelloWorldJsonList(String address) throws Exception {
+ WebClient wc = WebClient.create(address,
+ Collections.singletonList(new JacksonJsonProvider()));
+ WebClient.getConfig(wc).getHttpConduit().getClient().setReceiveTimeout(10000000);
+ GenericType<List<HelloWorldBean>> genericResponseType = new GenericType<List<HelloWorldBean>>() {
+ };
+
+ List<HelloWorldBean> beans = wc.accept("application/json").get(genericResponseType);
+ assertEquals(2, beans.size());
+ assertEquals("Hello", beans.get(0).getGreeting());
+ assertEquals("World", beans.get(0).getAudience());
+ assertEquals("Ciao", beans.get(1).getGreeting());
+ assertEquals("World", beans.get(1).getAudience());
+ }
+
+ @Test
+ public void testGetHelloWorldAsyncObservable() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textAsync";
+ WebClient wc = WebClient.create(address,
+ Collections.singletonList(new ObservableRxInvokerProvider()));
+ Observable<String> obs = wc.accept("text/plain")
+ .rx(ObservableRxInvoker.class)
+ .get(String.class);
+ obs.map(s -> {
+ return s + s;
+ });
+
+ Thread.sleep(3000);
+
+ obs.subscribe(s -> assertDuplicateResponse(s));
+ }
+ @Test
+ public void testGetHelloWorldAsyncObservable404() throws Exception {
+ String address = "http://localhost:" + PORT + "/reactive/textAsync404";
+ Invocation.Builder b = ClientBuilder.newClient().register(new ObservableRxInvokerProvider())
+ .target(address).request();
+ b.rx(ObservableRxInvoker.class).get(String.class).subscribe(
+ s -> {
+ fail("Exception expected");
+ },
+ t -> validateT((ExecutionException)t));
+ }
+
+ private void validateT(ExecutionException t) {
+ assertTrue(t.getCause() instanceof NotFoundException);
+ }
+ private void assertDuplicateResponse(String s) {
+ assertEquals("Hello, world!Hello, world!", s);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/44b04b36/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSReactiveTest.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSReactiveTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSReactiveTest.java
deleted file mode 100644
index dd8ee5c..0000000
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/JAXRSReactiveTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * 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.cxf.systest.jaxrs.reactive;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-import javax.ws.rs.NotFoundException;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.GenericType;
-
-import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
-
-import org.apache.cxf.jaxrs.client.WebClient;
-import org.apache.cxf.jaxrs.model.AbstractResourceInfo;
-import org.apache.cxf.jaxrs.rx.client.ObservableRxInvoker;
-import org.apache.cxf.jaxrs.rx.client.ObservableRxInvokerProvider;
-import org.apache.cxf.jaxrs.rx.provider.ObservableReader;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import rx.Observable;
-
-public class JAXRSReactiveTest extends AbstractBusClientServerTestBase {
- public static final String PORT = ReactiveServer.PORT;
- @BeforeClass
- public static void startServers() throws Exception {
- AbstractResourceInfo.clearAllMaps();
- assertTrue("server did not launch correctly",
- launchServer(ReactiveServer.class, true));
- createStaticBus();
- }
- @Test
- public void testGetHelloWorldText() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/text";
- WebClient wc = WebClient.create(address);
- String text = wc.accept("text/plain").get(String.class);
- assertEquals("Hello, world!", text);
- }
- @Test
- public void testGetHelloWorldAsyncText() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textAsync";
- WebClient wc = WebClient.create(address);
- String text = wc.accept("text/plain").get(String.class);
- assertEquals("Hello, world!", text);
- }
-
- @Test
- public void testGetHelloWorldTextObservableSync() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/text";
- WebClient wc = WebClient.create(address, Collections.singletonList(
- new ObservableReader<Object>()));
- GenericType<Observable<String>> genericResponseType =
- new GenericType<Observable<String>>() {
- };
- Observable<String> obs = wc.accept("text/plain").get(genericResponseType);
- obs.subscribe(s -> assertResponse(s));
- }
-
- private void assertResponse(String s) {
- assertEquals("Hello, world!", s);
- }
- @Test
- public void testGetHelloWorldJson() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textJson";
- WebClient wc = WebClient.create(address,
- Collections.singletonList(new JacksonJsonProvider()));
- HelloWorldBean bean = wc.accept("application/json").get(HelloWorldBean.class);
- assertEquals("Hello", bean.getGreeting());
- assertEquals("World", bean.getAudience());
- }
- @Test
- public void testGetHelloWorldJsonList() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textJsonList";
- doTestGetHelloWorldJsonList(address);
- }
- @Test
- public void testGetHelloWorldJsonImplicitList() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textJsonImplicitList";
- doTestGetHelloWorldJsonList(address);
- }
- @Test
- public void testGetHelloWorldJsonImplicitListAsync() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textJsonImplicitListAsync";
- doTestGetHelloWorldJsonList(address);
- }
- @Test
- public void testGetHelloWorldJsonImplicitListAsyncStream() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textJsonImplicitListAsyncStream";
- doTestGetHelloWorldJsonList(address);
- }
- private void doTestGetHelloWorldJsonList(String address) throws Exception {
- WebClient wc = WebClient.create(address,
- Collections.singletonList(new JacksonJsonProvider()));
- WebClient.getConfig(wc).getHttpConduit().getClient().setReceiveTimeout(10000000);
- GenericType<List<HelloWorldBean>> genericResponseType = new GenericType<List<HelloWorldBean>>() {
- };
-
- List<HelloWorldBean> beans = wc.accept("application/json").get(genericResponseType);
- assertEquals(2, beans.size());
- assertEquals("Hello", beans.get(0).getGreeting());
- assertEquals("World", beans.get(0).getAudience());
- assertEquals("Ciao", beans.get(1).getGreeting());
- assertEquals("World", beans.get(1).getAudience());
- }
-
- @Test
- public void testGetHelloWorldAsyncObservable() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textAsync";
- WebClient wc = WebClient.create(address,
- Collections.singletonList(new ObservableRxInvokerProvider()));
- Observable<String> obs = wc.accept("text/plain")
- .rx(ObservableRxInvoker.class)
- .get(String.class);
- obs.map(s -> {
- return s + s;
- });
-
- Thread.sleep(3000);
-
- obs.subscribe(s -> assertDuplicateResponse(s));
- }
- @Test
- public void testGetHelloWorldAsyncObservable404() throws Exception {
- String address = "http://localhost:" + PORT + "/reactive/textAsync404";
- Invocation.Builder b = ClientBuilder.newClient().register(new ObservableRxInvokerProvider())
- .target(address).request();
- b.rx(ObservableRxInvoker.class).get(String.class).subscribe(
- s -> {
- fail("Exception expected");
- },
- t -> validateT((ExecutionException)t));
- }
-
- private void validateT(ExecutionException t) {
- assertTrue(t.getCause() instanceof NotFoundException);
- }
- private void assertDuplicateResponse(String s) {
- assertEquals("Hello, world!Hello, world!", s);
- }
-}