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/12/07 13:35:34 UTC
[cxf] branch master updated: [CXF-7525] Completing the system test
This is an automated email from the ASF dual-hosted git repository.
sergeyb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new 2705f4d [CXF-7525] Completing the system test
2705f4d is described below
commit 2705f4dde2ec6cf3e1102c7c7b4a7063f110fce5
Author: Sergey Beryozkin <sb...@gmail.com>
AuthorDate: Thu Dec 7 13:35:21 2017 +0000
[CXF-7525] Completing the system test
---
.../description/OpenApiServiceDescriptionTest.java | 156 ++++++++++++++++++++-
1 file changed, 155 insertions(+), 1 deletion(-)
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/OpenApiServiceDescriptionTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/OpenApiServiceDescriptionTest.java
index 08b7d71..c729c20 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/OpenApiServiceDescriptionTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/OpenApiServiceDescriptionTest.java
@@ -20,11 +20,15 @@ package org.apache.cxf.systest.jaxrs.description;
import java.util.Arrays;
import java.util.Collections;
+import java.util.List;
+import java.util.Map;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.cxf.jaxrs.json.basic.JsonMapObject;
+import org.apache.cxf.jaxrs.json.basic.JsonMapObjectReaderWriter;
import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
import org.apache.cxf.jaxrs.model.AbstractResourceInfo;
import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
@@ -97,8 +101,158 @@ public class OpenApiServiceDescriptionTest extends AbstractBusClientServerTestBa
@Test
public void testOpenApiJSON() throws Exception {
final WebClient client = createWebClient("/openapi.json");
- client.get(String.class);
+ String openApiResponse = client.get(String.class);
+ JsonMapObject openApiJson = new JsonMapObjectReaderWriter().fromJsonToJsonObject(openApiResponse);
+ assertEquals(6, openApiJson.size());
+ // version
+ assertEquals("3.0.0", openApiJson.getProperty("openapi"));
+ // servers
+ List<Map<String, Object>> servers = openApiJson.getListMapProperty("servers");
+ assertEquals(1, servers.size());
+ assertEquals(1, servers.get(0).size());
+ assertEquals("https://localhost:" + PORT, servers.get(0).get("url"));
+ // info
+ JsonMapObject info = openApiJson.getJsonMapProperty("info");
+ assertEquals(4, info.size());
+ assertEquals(DESCRIPTION, info.getProperty("description"));
+ assertEquals(TITLE, info.getProperty("title"));
+ JsonMapObject contact = info.getJsonMapProperty("contact");
+ assertEquals(1, contact.size());
+ assertEquals(CONTACT, contact.getProperty("name"));
+ JsonMapObject license = info.getJsonMapProperty("license");
+ assertEquals(2, license.size());
+ assertEquals(LICENSE, license.getProperty("name"));
+ assertEquals(LICENSE_URL, license.getProperty("url"));
+ // tags
+ List<Map<String, Object>> tags = openApiJson.getListMapProperty("tags");
+ assertEquals(1, tags.size());
+ assertEquals(1, tags.get(0).size());
+ assertEquals("bookstore", tags.get(0).get("name"));
+ // paths
+ JsonMapObject paths = openApiJson.getJsonMapProperty("paths");
+ assertEquals(2, paths.size());
+ //1: bookstore
+ JsonMapObject bookstore = paths.getJsonMapProperty("/bookstore");
+ assertEquals(1, bookstore.size());
+ // get
+ verifyBookStoreGet(bookstore);
+ //2: bookstore/{id}
+ JsonMapObject bookstoreId = paths.getJsonMapProperty("/bookstore/{id}");
+ assertEquals(2, bookstoreId.size());
+ // get
+ verifyBookStoreIdGet(bookstoreId);
+ // delete
+ verifyBookStoreIdDelete(bookstoreId);
+
+ // components
+ JsonMapObject comps = openApiJson.getJsonMapProperty("components");
+ assertEquals(3, comps.size());
+ JsonMapObject requestBodies = comps.getJsonMapProperty("requestBodies");
+ assertEquals(0, requestBodies.size());
+ JsonMapObject schemas = comps.getJsonMapProperty("schemas");
+ assertEquals(1, schemas.size());
+ JsonMapObject secSchemes = comps.getJsonMapProperty("securitySchemes");
+ assertEquals(1, secSchemes.size());
+ }
+ private void verifyBookStoreGet(JsonMapObject bookstore) {
+ JsonMapObject bookstoreGet = bookstore.getJsonMapProperty("get");
+ assertEquals(6, bookstoreGet.size());
+ List<String> bookstoreGetTags = bookstoreGet.getListStringProperty("tags");
+ assertEquals(1, bookstoreGetTags.size());
+ assertEquals("bookstore", bookstoreGetTags.get(0));
+ assertEquals("Get books", bookstoreGet.getProperty("summary"));
+ assertEquals("Get books", bookstoreGet.getProperty("description"));
+ assertEquals("getBooks", bookstoreGet.getProperty("operationId"));
+ List<Map<String, Object>> bookstoreGetParams = bookstoreGet.getListMapProperty("parameters");
+ assertEquals(1, bookstoreGetParams.size());
+ JsonMapObject firstParam = new JsonMapObject(bookstoreGetParams.get(0));
+ assertEquals(5, firstParam.size());
+ assertEquals("page", firstParam.getProperty("name"));
+ assertEquals("query", firstParam.getProperty("in"));
+ assertEquals("Page to fetch", firstParam.getProperty("description"));
+ assertTrue(firstParam.getBooleanProperty("required"));
+ JsonMapObject schema = firstParam.getJsonMapProperty("schema");
+ assertEquals(3, schema.size());
+ assertEquals("integer", schema.getProperty("type"));
+ assertEquals("int32", schema.getProperty("format"));
+ assertEquals(Integer.valueOf(1), schema.getIntegerProperty("default"));
+ JsonMapObject responses = bookstoreGet.getJsonMapProperty("responses");
+ assertEquals(1, responses.size());
+ JsonMapObject okResp = responses.getJsonMapProperty("200");
+ assertEquals(2, okResp.size());
+ assertEquals("successful operation", okResp.getProperty("description"));
+ JsonMapObject content = okResp.getJsonMapProperty("content");
+ assertEquals(1, content.size());
+ JsonMapObject jsonResp = content.getJsonMapProperty("application/json");
+ assertEquals(1, jsonResp.size());
+ JsonMapObject jsonRespSchema = jsonResp.getJsonMapProperty("schema");
+ assertEquals(2, jsonRespSchema.size());
+ assertEquals("array", jsonRespSchema.getProperty("type"));
+ JsonMapObject jsonRespSchemaItems = jsonRespSchema.getJsonMapProperty("items");
+ assertEquals(1, jsonRespSchemaItems.size());
+ assertEquals("#components/schemas/Book", jsonRespSchemaItems.getProperty("$ref"));
+ }
+ private void verifyBookStoreIdGet(JsonMapObject bookstore) {
+ JsonMapObject bookstoreGet = bookstore.getJsonMapProperty("get");
+ assertEquals(6, bookstoreGet.size());
+ List<String> bookstoreGetTags = bookstoreGet.getListStringProperty("tags");
+ assertEquals(1, bookstoreGetTags.size());
+ assertEquals("bookstore", bookstoreGetTags.get(0));
+ assertEquals("Get book by Id", bookstoreGet.getProperty("summary"));
+ assertEquals("Get book by Id", bookstoreGet.getProperty("description"));
+ assertEquals("getBook", bookstoreGet.getProperty("operationId"));
+ List<Map<String, Object>> bookstoreGetParams = bookstoreGet.getListMapProperty("parameters");
+ assertEquals(1, bookstoreGetParams.size());
+ JsonMapObject firstParam = new JsonMapObject(bookstoreGetParams.get(0));
+ assertEquals(5, firstParam.size());
+ assertEquals("id", firstParam.getProperty("name"));
+ assertEquals("path", firstParam.getProperty("in"));
+ assertEquals("id", firstParam.getProperty("description"));
+ assertTrue(firstParam.getBooleanProperty("required"));
+ JsonMapObject schema = firstParam.getJsonMapProperty("schema");
+ assertEquals(2, schema.size());
+ assertEquals("integer", schema.getProperty("type"));
+ assertEquals("int64", schema.getProperty("format"));
+ JsonMapObject responses = bookstoreGet.getJsonMapProperty("responses");
+ assertEquals(1, responses.size());
+ JsonMapObject okResp = responses.getJsonMapProperty("200");
+ assertEquals(2, okResp.size());
+ assertEquals("successful operation", okResp.getProperty("description"));
+ JsonMapObject content = okResp.getJsonMapProperty("content");
+ assertEquals(1, content.size());
+ JsonMapObject jsonResp = content.getJsonMapProperty("application/json");
+ assertEquals(1, jsonResp.size());
+ JsonMapObject jsonRespSchema = jsonResp.getJsonMapProperty("schema");
+ assertEquals(1, jsonRespSchema.size());
+ assertEquals("#components/schemas/Book", jsonRespSchema.getProperty("$ref"));
}
+ private void verifyBookStoreIdDelete(JsonMapObject bookstore) {
+ JsonMapObject bookstoreDel = bookstore.getJsonMapProperty("delete");
+ assertEquals(6, bookstoreDel.size());
+ List<String> bookstoreDelTags = bookstoreDel.getListStringProperty("tags");
+ assertEquals(1, bookstoreDelTags.size());
+ assertEquals("bookstore", bookstoreDelTags.get(0));
+ assertEquals("Delete book", bookstoreDel.getProperty("summary"));
+ assertEquals("Delete book", bookstoreDel.getProperty("description"));
+ assertEquals("delete", bookstoreDel.getProperty("operationId"));
+ List<Map<String, Object>> bookstoreDelParams = bookstoreDel.getListMapProperty("parameters");
+ assertEquals(1, bookstoreDelParams.size());
+ JsonMapObject firstParam = new JsonMapObject(bookstoreDelParams.get(0));
+ assertEquals(5, firstParam.size());
+ assertEquals("id", firstParam.getProperty("name"));
+ assertEquals("path", firstParam.getProperty("in"));
+ assertEquals("id", firstParam.getProperty("description"));
+ assertTrue(firstParam.getBooleanProperty("required"));
+ JsonMapObject schema = firstParam.getJsonMapProperty("schema");
+ assertEquals(1, schema.size());
+ assertEquals("string", schema.getProperty("type"));
+ JsonMapObject responses = bookstoreDel.getJsonMapProperty("responses");
+ assertEquals(1, responses.size());
+ JsonMapObject okResp = responses.getJsonMapProperty("default");
+ assertEquals(1, okResp.size());
+ assertEquals("successful operation", okResp.getProperty("description"));
+ }
+
protected WebClient createWebClient(final String url) {
WebClient wc = WebClient.create("http://localhost:" + PORT + url)
.accept(MediaType.APPLICATION_JSON);
--
To stop receiving notification emails like this one, please contact
['"commits@cxf.apache.org" <co...@cxf.apache.org>'].