Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4D379200D1D for ; Sat, 9 Sep 2017 01:21:33 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4BAE91609C1; Fri, 8 Sep 2017 23:21:33 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B8B59161280 for ; Sat, 9 Sep 2017 01:21:29 +0200 (CEST) Received: (qmail 41845 invoked by uid 500); 8 Sep 2017 23:21:28 -0000 Mailing-List: contact commits-help@juneau.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@juneau.incubator.apache.org Delivered-To: mailing list commits@juneau.incubator.apache.org Received: (qmail 41497 invoked by uid 99); 8 Sep 2017 23:21:28 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Sep 2017 23:21:28 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 56C0E3A0AB6 for ; Fri, 8 Sep 2017 23:21:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r21538 [15/27] - in /release/incubator/juneau: juneau-microservice-server/ juneau-microservice-server/.settings/ juneau-microservice-server/src/ juneau-microservice-server/src/main/ juneau-microservice-server/src/main/java/ juneau-microserv... Date: Fri, 08 Sep 2017 23:21:18 -0000 To: commits@juneau.apache.org From: jamesbognar@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20170908232124.56C0E3A0AB6@svn01-us-west.apache.org> archived-at: Fri, 08 Sep 2017 23:21:33 -0000 Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HeadersTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HeadersTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HeadersTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,261 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.apache.juneau.rest.test.TestUtils.*; +import static org.junit.Assert.*; + +import org.apache.juneau.*; +import org.apache.juneau.rest.client.*; +import org.junit.*; + +public class HeadersTest extends RestTestcase { + + RestClient client = TestMicroservice.DEFAULT_CLIENT; + + private static String URL = "/testHeaders"; + + //==================================================================================================== + // Basic tests + //==================================================================================================== + + @Test + public void accept() throws Exception { + assertEquals("text/foo", client.doGet(URL + "/accept").accept("text/foo").getResponseAsString()); + assertEquals("text/foo+bar", client.doGet(URL + "/accept").accept("text/foo+bar").getResponseAsString()); + assertEquals("text/*", client.doGet(URL + "/accept").accept("text/*").getResponseAsString()); + assertEquals("*/foo", client.doGet(URL + "/accept").accept("*/foo").getResponseAsString()); + + assertEquals("text/foo", client.doGet(URL + "/accept").accept("text/foo;q=1.0").getResponseAsString()); + assertEquals("text/foo;q=0.9", client.doGet(URL + "/accept").accept("text/foo;q=0.9").getResponseAsString()); + assertEquals("text/foo;x=X;q=0.9;y=Y", client.doGet(URL + "/accept").accept("text/foo;x=X;q=0.9;y=Y").getResponseAsString()); + + assertEquals("text/foo", client.doGet(URL + "/accept").query("Accept", "text/foo").getResponseAsString()); + } + + @Test + public void acceptCharset() throws Exception { + assertEquals("UTF-8", client.doGet(URL + "/acceptCharset").acceptCharset("UTF-8").getResponseAsString()); + assertEquals("UTF-8", client.doGet(URL + "/acceptCharset").query("Accept-Charset", "UTF-8").getResponseAsString()); + } + + @Test + public void acceptEncoding() throws Exception { + assertEquals("foo", client.doGet(URL + "/acceptEncoding").acceptEncoding("foo").getResponseAsString()); + assertEquals("*", client.doGet(URL + "/acceptEncoding").acceptEncoding("*").getResponseAsString()); + assertEquals("*", client.doGet(URL + "/acceptEncoding").query("Accept-Encoding", "*").getResponseAsString()); + } + + @Test + public void acceptLanguage() throws Exception { + assertEquals("foo", client.doGet(URL + "/acceptLanguage").acceptLanguage("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/acceptLanguage").query("Accept-Language", "foo").getResponseAsString()); + } + + @Test + public void authorization() throws Exception { + assertEquals("foo", client.doGet(URL + "/authorization").authorization("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/authorization").query("Authorization", "foo").getResponseAsString()); + } + + @Test + public void cacheControl() throws Exception { + assertEquals("foo", client.doGet(URL + "/cacheControl").cacheControl("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/cacheControl").query("Cache-Control", "foo").getResponseAsString()); + } + + @Test + public void connection() throws Exception { + assertEquals("foo", client.doGet(URL + "/connection").connection("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/connection").query("Connection", "foo").getResponseAsString()); + } + + @Test + public void contentLength() throws Exception { + assertEquals("0", client.doGet(URL + "/contentLength").contentLength(0).getResponseAsString()); + assertEquals("0", client.doGet(URL + "/contentLength").query("Content-Length", 0).getResponseAsString()); + } + + @Test + public void contentType() throws Exception { + assertEquals("text/foo", client.doGet(URL + "/contentType").contentType("text/foo").getResponseAsString()); + assertEquals("text/foo", client.doGet(URL + "/contentType").query("Content-Type", "text/foo").getResponseAsString()); + } + + @Test + public void date() throws Exception { + assertEquals("foo", client.doGet(URL + "/date").date("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/date").query("Date", "foo").getResponseAsString()); + } + + @Test + public void expect() throws Exception { + assertEquals("100-continue", client.doGet(URL + "/expect").expect("100-continue").getResponseAsString()); + assertEquals("100-continue", client.doGet(URL + "/expect").query("Expect", "100-continue").getResponseAsString()); + } + + @Test + public void from() throws Exception { + assertEquals("foo", client.doGet(URL + "/from").from("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/from").query("From", "foo").getResponseAsString()); + } + + @Test + public void host() throws Exception { + assertTrue(client.doGet(URL + "/host").host("localhost").getResponseAsString().startsWith("localhost")); + assertTrue(client.doGet(URL + "/host").query("Host", "localhost").getResponseAsString().startsWith("localhost")); + } + + @Test + public void ifMatch() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT; + assertEquals("\"foo\"", client.doGet(URL + "/ifMatch").ifMatch("foo").getResponseAsString()); + assertEquals("\"foo\"", client.doGet(URL + "/ifMatch").ifMatch("\"foo\"").getResponseAsString()); + assertEquals("W/\"foo\"", client.doGet(URL + "/ifMatch").ifMatch("W/\"foo\"").getResponseAsString()); + assertEquals("W/\"foo\", \"bar\"", client.doGet(URL + "/ifMatch").ifMatch("W/\"foo\",\"bar\"").getResponseAsString()); + assertEquals("\"foo\"", client.doGet(URL + "/ifMatch").query("If-Match", "foo").getResponseAsString()); + } + + @Test + public void ifModifiedSince() throws Exception { + assertEquals("foo", client.doGet(URL + "/ifModifiedSince").ifModifiedSince("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/ifModifiedSince").query("If-Modified-Since", "foo").getResponseAsString()); + } + + @Test + public void ifNoneMatch() throws Exception { + assertEquals("\"foo\"", client.doGet(URL + "/ifNoneMatch").ifNoneMatch("foo").getResponseAsString()); + assertEquals("\"foo\"", client.doGet(URL + "/ifNoneMatch").ifNoneMatch("\"foo\"").getResponseAsString()); + assertEquals("W/\"foo\"", client.doGet(URL + "/ifNoneMatch").ifNoneMatch("W/\"foo\"").getResponseAsString()); + assertEquals("W/\"foo\", \"bar\"", client.doGet(URL + "/ifNoneMatch").ifNoneMatch("W/\"foo\",\"bar\"").getResponseAsString()); + assertEquals("\"foo\"", client.doGet(URL + "/ifNoneMatch").query("If-None-Match", "foo").getResponseAsString()); + } + + @Test + public void ifRange() throws Exception { + assertEquals("foo", client.doGet(URL + "/ifRange").ifRange("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/ifRange").query("If-Range", "foo").getResponseAsString()); + } + + @Test + public void ifUnmodifiedSince() throws Exception { + assertEquals("foo", client.doGet(URL + "/ifUnmodifiedSince").ifUnmodifiedSince("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/ifUnmodifiedSince").query("If-Unmodified-Since", "foo").getResponseAsString()); + } + + @Test + public void maxForwards() throws Exception { + assertEquals("123", client.doGet(URL + "/maxForwards").maxForwards(123).getResponseAsString()); + assertEquals("123", client.doGet(URL + "/maxForwards").query("Max-Forwards", 123).getResponseAsString()); + } + + @Test + public void pragma() throws Exception { + assertEquals("foo", client.doGet(URL + "/pragma").pragma("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/pragma").query("Pragma", "foo").getResponseAsString()); + } + + @Test + public void proxyAuthorization() throws Exception { + assertEquals("foo", client.doGet(URL + "/proxyAuthorization").proxyAuthorization("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/proxyAuthorization").query("Proxy-Authorization", "foo").getResponseAsString()); + } + + @Test + public void range() throws Exception { + assertEquals("foo", client.doGet(URL + "/range").range("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/range").query("Range", "foo").getResponseAsString()); + } + + @Test + public void referer() throws Exception { + assertEquals("foo", client.doGet(URL + "/referer").referer("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/referer").query("Referer", "foo").getResponseAsString()); + } + + @Test + public void te() throws Exception { + assertEquals("foo", client.doGet(URL + "/te").te("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/te").query("TE", "foo").getResponseAsString()); + } + +// @Test +// public void upgrade() throws Exception { +// assertEquals("foo", client.doGet(URL + "/upgrade").upgrade("foo").getResponseAsString()); +// assertEquals("foo", client.doGet(URL + "/upgrade").query("Upgrade", "foo").getResponseAsString()); +// } +// + @Test + public void userAgent() throws Exception { + assertEquals("foo", client.doGet(URL + "/userAgent").userAgent("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/userAgent").query("User-Agent", "foo").getResponseAsString()); + } + + @Test + public void warning() throws Exception { + assertEquals("foo", client.doGet(URL + "/warning").warning("foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/warning").query("Warning", "foo").getResponseAsString()); + } + + @Test + public void customHeader() throws Exception { + assertEquals("foo", client.doGet(URL + "/customHeader").header("Custom", "foo").getResponseAsString()); + assertEquals("foo", client.doGet(URL + "/customHeader").query("Custom", "foo").getResponseAsString()); + } + + //==================================================================================================== + // Default values. + //==================================================================================================== + + @Test + public void defaultRequestHeaders() throws Exception { + assertObjectEquals("{h1:'1',h2:'2',h3:'3'}", client.doGet(URL + "/defaultRequestHeaders").getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/defaultRequestHeaders").header("H1",4).header("H2",5).header("H3",6).getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/defaultRequestHeaders").header("h1",4).header("h2",5).header("h3",6).getResponse(ObjectMap.class)); + } + + @Test + public void defaultRequestHeadersCaseInsensitive() throws Exception { + assertObjectEquals("{h1:'1',h2:'2',h3:'3'}", client.doGet(URL + "/defaultRequestHeadersCaseInsensitive").getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/defaultRequestHeadersCaseInsensitive").header("H1",4).header("H2",5).header("H3",6).getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/defaultRequestHeadersCaseInsensitive").header("h1",4).header("h2",5).header("h3",6).getResponse(ObjectMap.class)); + } + + @Test + public void annotatedHeaders() throws Exception { + assertObjectEquals("{h1:null,h2:null,h3:null}", client.doGet(URL + "/annotatedHeaders").getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/annotatedHeaders").header("H1",4).header("H2",5).header("H3",6).getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/annotatedHeaders").header("h1",4).header("h2",5).header("h3",6).getResponse(ObjectMap.class)); + } + + @Test + public void annotatedHeadersCaseInsensitive() throws Exception { + assertObjectEquals("{h1:null,h2:null,h3:null}", client.doGet(URL + "/annotatedHeadersCaseInsensitive").getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/annotatedHeadersCaseInsensitive").header("H1",4).header("H2",5).header("H3",6).getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/annotatedHeadersCaseInsensitive").header("h1",4).header("h2",5).header("h3",6).getResponse(ObjectMap.class)); + } + + @Test + public void annotatedHeadersDefault() throws Exception { + assertObjectEquals("{h1:'1',h2:'2',h3:'3'}", client.doGet(URL + "/annotatedHeadersDefault").getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/annotatedHeadersDefault").header("H1",4).header("H2",5).header("H3",6).getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/annotatedHeadersDefault").header("h1",4).header("h2",5).header("h3",6).getResponse(ObjectMap.class)); + } + + @Test + public void annotatedAndDefaultHeaders() throws Exception { + assertObjectEquals("{h1:'4',h2:'5',h3:'6'}", client.doGet(URL + "/annotatedAndDefaultHeaders").getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'7',h2:'8',h3:'9'}", client.doGet(URL + "/annotatedAndDefaultHeaders").header("H1",7).header("H2",8).header("H3",9).getResponse(ObjectMap.class)); + assertObjectEquals("{h1:'7',h2:'8',h3:'9'}", client.doGet(URL + "/annotatedAndDefaultHeaders").header("h1",7).header("h2",8).header("h3",9).getResponse(ObjectMap.class)); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HeadersTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocLinksTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocLinksTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocLinksTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,337 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import org.apache.juneau.rest.client.*; +import org.junit.*; + +/** + * Validates inheritance on the @HtmlDoc.links() annotation. + */ +public class HtmlDocLinksTest extends RestTestcase { + private RestClient client = TestMicroservice.DEFAULT_CLIENT; + + private String get(String uri) throws Exception { + return client.doGet(uri).accept("text/html").getResponseAsString().replace('\n', ' ').replace('"', '\'').replaceAll(".*"); + } + + /** + * @RestResource( + * path="/testHtmlDocLinks", + * htmldoc=@HtmlDoc( + * links={"links1a","links1b"} + * ) + * ) + */ + @Test + public void test1() throws Exception { + String r = get("/testHtmlDocLinks/test1"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test2", + * htmldoc=@HtmlDoc( + * links={"links2a","links2b"} + * ) + * ) + */ + @Test + public void test2() throws Exception { + String r = get("/testHtmlDocLinks/test2"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test3", + * htmldoc=@HtmlDoc( + * links={"INHERIT","links3a","links3b"} + * ) + * ) + */ + @Test + public void test3() throws Exception { + String r = get("/testHtmlDocLinks/test3"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test4", + * htmldoc=@HtmlDoc( + * links={"links4a","INHERIT","links4b"} + * ) + * ) + */ + @Test + public void test4() throws Exception { + String r = get("/testHtmlDocLinks/test4"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test5", + * htmldoc=@HtmlDoc( + * links={"links5a","links5b","INHERIT"} + * ) + * ) + */ + @Test + public void test5() throws Exception { + String r = get("/testHtmlDocLinks/test5"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test6a", + * htmldoc=@HtmlDoc( + * links={"INHERIT","[0]:links6a","[3]:links6b"} + * ) + * ) + */ + @Test + public void test6a() throws Exception { + String r = get("/testHtmlDocLinks/test6a"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test6b", + * htmldoc=@HtmlDoc( + * links={"[1]:links6a","[2]:links6b","INHERIT"} + * ) + * ) + */ + @Test + public void test6b() throws Exception { + String r = get("/testHtmlDocLinks/test6b"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test6c", + * htmldoc=@HtmlDoc( + * links={"[1]:links6a","[0]:links6b"} + * ) + * ) + */ + @Test + public void test6c() throws Exception { + String r = get("/testHtmlDocLinks/test6c"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test6d", + * htmldoc=@HtmlDoc( + * links={"INHERIT","foo[0]:links6a","bar[3]:links6b"} + * ) + * ) + */ + @Test + public void test6d() throws Exception { + String r = get("/testHtmlDocLinks/test6d"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test6e", + * htmldoc=@HtmlDoc( + * links={"foo[1]:links6a","bar[2]:links6b","INHERIT"} + * ) + * ) + */ + @Test + public void test6e() throws Exception { + String r = get("/testHtmlDocLinks/test6e"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test6f", + * htmldoc=@HtmlDoc( + * links={"foo[1]:links6a","bar[0]:links6b"} + * ) + * ) + */ + @Test + public void test6f() throws Exception { + String r = get("/testHtmlDocLinks/test6f"); + assertEquals("", r); + } + + /** + * @RestResource( + * path="/testHtmlDocLinks2", + * htmldoc=@HtmlDoc( + * links={"INHERIT","links11a","links11b"} + * ) + * ) + */ + @Test + public void test11() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test11"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test12", + * htmldoc=@HtmlDoc( + * links={"links12a","links12b"} + * ) + * ) + */ + @Test + public void test12() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test12"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test13", + * htmldoc=@HtmlDoc( + * links={"INHERIT","links13a","links13b"} + * ) + * ) + */ + @Test + public void test13() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test13"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test14", + * htmldoc=@HtmlDoc( + * links={"links14a","INHERIT","links14b"} + * ) + * ) + */ + @Test + public void test14() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test14"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test15", + * htmldoc=@HtmlDoc( + * links={"links15a","links15b","INHERIT"} + * ) + * ) + */ + @Test + public void test15() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test15"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test16a", + * htmldoc=@HtmlDoc( + * links={"INHERIT","[0]:links16a","[3]:links16b"} + * ) + * ) + */ + @Test + public void test16a() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test16a"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test16b", + * htmldoc=@HtmlDoc( + * links={"[1]:links16a","[2]:links16b","INHERIT"} + * ) + * ) + */ + @Test + public void test16b() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test16b"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test16c", + * htmldoc=@HtmlDoc( + * links={"[1]:links16a","[0]:links16b"} + * ) + * ) + */ + @Test + public void test16c() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test16c"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test16d", + * htmldoc=@HtmlDoc( + * links={"INHERIT","foo[0]:links16a","bar[3]:links16b"} + * ) + * ) + */ + @Test + public void test16d() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test16d"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test16e", + * htmldoc=@HtmlDoc( + * links={"foo[1]:links16a","bar[2]:links16b","INHERIT"} + * ) + * ) + */ + @Test + public void test16e() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test16e"); + assertEquals("", r); + } + + /** + * @RestMethod( + * path="/test16f", + * htmldoc=@HtmlDoc( + * links={"foo[1]:links16a","bar[0]:links16b"} + * ) + * ) + */ + @Test + public void test16f() throws Exception { + String r = get("/testHtmlDocLinks/testHtmlDocLinks2/test16f"); + assertEquals("", r); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocLinksTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,291 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import org.apache.juneau.rest.client.*; +import org.junit.*; + +/** + * Validates inheritance on the @HtmlDoc annotation. + */ +public class HtmlDocTest extends RestTestcase { + private RestClient client = TestMicroservice.DEFAULT_CLIENT; + + private String get(String uri) throws Exception { + return client.doGet(uri).accept("text/html").getResponseAsString().replace('\n', ' ').replace('"', '\''); + } + private String header(String r) { + return r.substring(r.indexOf("
")+8, r.indexOf("
")); + } + private String script(String r) { + return r.substring(r.indexOf("")); + } + private String style(String r) { + return r.substring(r.indexOf("")); + } + private String nav(String r) { + return r.substring(r.indexOf("")); + } + private String aside(String r) { + return r.substring(r.indexOf("")); + } + private String footer(String r) { + return r.substring(r.indexOf("
")+8, r.indexOf("
")); + } + + /** + * @RestResource( + * path="/testHtmlDoc", + * htmldoc=@HtmlDoc( + * aside={"aside1a","aside1b","INHERIT"}, + * footer={"footer1a","footer1b"}, + * header={"header1a","header1b"}, + * nav={"nav1a","nav1b"}, + * script={"script1a","script1b"}, + * style={"style1a","style1b"}, + * stylesheet="stylesheet1" + * ) + * ) + */ + @Test + public void test1() throws Exception { + String r = get("/testHtmlDoc/test1"); + assertEquals("header1a header1b", header(r)); + assertEquals("script1a script1b", script(r)); + assertEquals("@import '/testHtmlDoc/stylesheet1'; style1a style1b ", style(r)); + assertEquals("nav1a nav1b", nav(r)); + assertEquals("aside1a aside1b", aside(r)); + assertEquals("footer1a footer1b", footer(r)); + } + + /** + * @RestMethod( + * path="/test2", + * htmldoc=@HtmlDoc( + * aside={"aside2a","aside2b"}, + * footer={"footer2a","footer2b"}, + * header={"header2a","header2b"}, + * nav={"nav2a","nav2b"}, + * script={"script2a","script2b"}, + * style={"style2a","style2b"}, + * stylesheet="stylesheet2" + * ) + * ) + */ + @Test + public void test2() throws Exception { + String r = get("/testHtmlDoc/test2"); + assertEquals("header2a header2b", header(r)); + assertEquals("script2a script2b", script(r)); + assertEquals("@import '/testHtmlDoc/stylesheet2'; style2a style2b ", style(r)); + assertEquals("nav2a nav2b", nav(r)); + assertEquals("aside2a aside2b", aside(r)); + assertEquals("footer2a footer2b", footer(r)); + } + + /** + * @RestMethod( + * path="/test3", + * htmldoc=@HtmlDoc( + * aside={"INHERIT","aside3a","aside3b"}, + * footer={"INHERIT","footer3a","footer3b"}, + * header={"INHERIT","header3a","header3b"}, + * nav={"INHERIT","nav3a","nav3b"}, + * script={"INHERIT","script3a","script3b"}, + * style={"INHERIT","style3a","style3b"} + * ) + * ) + */ + @Test + public void test3() throws Exception { + String r = get("/testHtmlDoc/test3"); + assertEquals("header1a header1b header3a header3b", header(r)); + assertEquals("script1a script1b script3a script3b", script(r)); + assertEquals("@import '/testHtmlDoc/stylesheet1'; style1a style1b style3a style3b ", style(r)); + assertEquals("nav1a nav1b nav3a nav3b", nav(r)); + assertEquals("aside1a aside1b aside3a aside3b", aside(r)); + assertEquals("footer1a footer1b footer3a footer3b", footer(r)); + } + + /** + * @RestMethod( + * path="/test4", + * htmldoc=@HtmlDoc( + * aside={"aside4a","INHERIT","aside4b"}, + * footer={"footer4a","INHERIT","footer4b"}, + * header={"header4a","INHERIT","header4b"}, + * nav={"nav4a","INHERIT","nav4b"}, + * script={"script4a","INHERIT","script4b"}, + * style={"style4a","INHERIT","style4b"} + * ) + * ) + */ + @Test + public void test4() throws Exception { + String r = get("/testHtmlDoc/test4"); + assertEquals("header4a header1a header1b header4b", header(r)); + assertEquals("script4a script1a script1b script4b", script(r)); + assertEquals("@import '/testHtmlDoc/stylesheet1'; style4a style1a style1b style4b ", style(r)); + assertEquals("nav4a nav1a nav1b nav4b", nav(r)); + assertEquals("aside4a aside1a aside1b aside4b", aside(r)); + assertEquals("footer4a footer1a footer1b footer4b", footer(r)); + } + + /** + * @RestMethod( + * path="/test5", + * htmldoc=@HtmlDoc( + * aside={"aside5a","aside5b","INHERIT"}, + * footer={"footer5a","footer5b","INHERIT"}, + * header={"header5a","header5b","INHERIT"}, + * nav={"nav5a","nav5b","INHERIT"}, + * script={"script5a","script5b","INHERIT"}, + * style={"style5a","style5b","INHERIT"} + * ) + * ) + */ + @Test + public void test5() throws Exception { + String r = get("/testHtmlDoc/test5"); + assertEquals("header5a header5b header1a header1b", header(r)); + assertEquals("script5a script5b script1a script1b", script(r)); + assertEquals("@import '/testHtmlDoc/stylesheet1'; style5a style5b style1a style1b ", style(r)); + assertEquals("nav5a nav5b nav1a nav1b", nav(r)); + assertEquals("aside5a aside5b aside1a aside1b", aside(r)); + assertEquals("footer5a footer5b footer1a footer1b", footer(r)); + } + + /** + * @RestResource( + * path="/testHtmlDoc2", + * htmldoc=@HtmlDoc( + * aside={"INHERIT","aside11a","aside11b"}, + * footer={"footer11a","INHERIT","footer11b"}, + * header={"header11a","header11b","INHERIT"}, + * nav={"INHERIT","nav11a","nav11b"}, + * script={"script11a","script11b"}, + * style={"style11a","style11b"}, + * stylesheet="stylesheet11" + * ) + * ) + */ + @Test + public void test11() throws Exception { + String r = get("/testHtmlDoc/testHtmlDoc2/test11"); + assertEquals("header11a header11b header1a header1b", header(r)); + assertEquals("script11a script11b", script(r)); + assertEquals("@import '/testHtmlDoc/testHtmlDoc2/stylesheet11'; style11a style11b ", style(r)); + assertEquals("nav1a nav1b nav11a nav11b", nav(r)); + assertEquals("aside1a aside1b aside11a aside11b", aside(r)); + assertEquals("footer11a footer1a footer1b footer11b", footer(r)); + } + + /** + * @RestMethod( + * path="/test12", + * htmldoc=@HtmlDoc( + * aside={"aside12a","aside12b"}, + * footer={"footer12a","footer12b"}, + * header={"header12a","header12b"}, + * nav={"nav12a","nav12b"}, + * script={"script12a","script12b"}, + * style={"style12a","style12b"}, + * stylesheet="stylesheet12" + * ) + * ) + */ + @Test + public void test12() throws Exception { + String r = get("/testHtmlDoc/testHtmlDoc2/test12"); + assertEquals("header12a header12b", header(r)); + assertEquals("script12a script12b", script(r)); + assertEquals("@import '/testHtmlDoc/testHtmlDoc2/stylesheet12'; style12a style12b ", style(r)); + assertEquals("nav12a nav12b", nav(r)); + assertEquals("aside12a aside12b", aside(r)); + assertEquals("footer12a footer12b", footer(r)); + } + + /** + * @RestMethod( + * path="/test13", + * htmldoc=@HtmlDoc( + * aside={"INHERIT","aside13a","aside13b"}, + * footer={"INHERIT","footer13a","footer13b"}, + * header={"INHERIT","header13a","header13b"}, + * nav={"INHERIT","nav13a","nav13b"}, + * script={"INHERIT","script13a","script13b"}, + * style={"INHERIT","style13a","style13b"} + * ) + * ) + */ + @Test + public void test13() throws Exception { + String r = get("/testHtmlDoc/testHtmlDoc2/test13"); + assertEquals("header11a header11b header1a header1b header13a header13b", header(r)); + assertEquals("script11a script11b script13a script13b", script(r)); + assertEquals("@import '/testHtmlDoc/testHtmlDoc2/stylesheet11'; style11a style11b style13a style13b ", style(r)); + assertEquals("nav1a nav1b nav11a nav11b nav13a nav13b", nav(r)); + assertEquals("aside1a aside1b aside11a aside11b aside13a aside13b", aside(r)); + assertEquals("footer11a footer1a footer1b footer11b footer13a footer13b", footer(r)); + } + + /** + * @RestMethod( + * path="/test14", + * htmldoc=@HtmlDoc( + * aside={"aside14a","INHERIT","aside14b"}, + * footer={"footer14a","INHERIT","footer14b"}, + * header={"header14a","INHERIT","header14b"}, + * nav={"nav14a","INHERIT","nav14b"}, + * script={"script14a","INHERIT","script14b"}, + * style={"style14a","INHERIT","style14b"} + * ) + * ) + */ + @Test + public void test14() throws Exception { + String r = get("/testHtmlDoc/testHtmlDoc2/test14"); + assertEquals("header14a header11a header11b header1a header1b header14b", header(r)); + assertEquals("script14a script11a script11b script14b", script(r)); + assertEquals("@import '/testHtmlDoc/testHtmlDoc2/stylesheet11'; style14a style11a style11b style14b ", style(r)); + assertEquals("nav14a nav1a nav1b nav11a nav11b nav14b", nav(r)); + assertEquals("aside14a aside1a aside1b aside11a aside11b aside14b", aside(r)); + assertEquals("footer14a footer11a footer1a footer1b footer11b footer14b", footer(r)); + } + + /** + * @RestMethod( + * path="/test15", + * htmldoc=@HtmlDoc( + * aside={"aside15a","aside15b","INHERIT"}, + * footer={"footer15a","footer15b","INHERIT"}, + * header={"header15a","header15b","INHERIT"}, + * nav={"nav15a","nav15b","INHERIT"}, + * script={"script15a","script15b","INHERIT"}, + * style={"style15a","style15b","INHERIT"} + * ) + * ) + */ + @Test + public void test15() throws Exception { + String r = get("/testHtmlDoc/testHtmlDoc2/test15"); + assertEquals("header15a header15b header11a header11b header1a header1b", header(r)); + assertEquals("script15a script15b script11a script11b", script(r)); + assertEquals("@import '/testHtmlDoc/testHtmlDoc2/stylesheet11'; style15a style15b style11a style11b ", style(r)); + assertEquals("nav15a nav15b nav1a nav1b nav11a nav11b", nav(r)); + assertEquals("aside15a aside15b aside1a aside1b aside11a aside11b", aside(r)); + assertEquals("footer15a footer15b footer11a footer1a footer1b footer11b", footer(r)); + } +} \ No newline at end of file Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/HtmlDocTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InheritanceTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InheritanceTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InheritanceTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,116 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import org.apache.juneau.rest.client.*; +import org.junit.*; + +public class InheritanceTest extends RestTestcase { + + private RestClient client = TestMicroservice.DEFAULT_CLIENT; + + + //==================================================================================================== + // Test serializer inheritance. + //==================================================================================================== + @Test + public void testSerializers() throws Exception { + String r; + String url = "/testInheritanceSerializers"; + r = client.doGet(url + "/test1").getResponseAsString(); + assertEquals("['text/s3','text/s4','text/s1','text/s2']", r); + + r = client.doGet(url + "/test2").getResponseAsString(); + assertEquals("['text/s5']", r); + + r = client.doGet(url + "/test3").getResponseAsString(); + assertEquals("['text/s5','text/s3','text/s4','text/s1','text/s2']", r); + } + + //==================================================================================================== + // Test parser inheritance. + //==================================================================================================== + @Test + public void testParsers() throws Exception { + String r; + String url = "/testInheritanceParsers"; + r = client.doGet(url + "/test1").getResponseAsString(); + assertEquals("['text/p3','text/p4','text/p1','text/p2']", r); + + r = client.doGet(url + "/test2").getResponseAsString(); + assertEquals("['text/p5']", r); + + r = client.doGet(url + "/test3").getResponseAsString(); + assertEquals("['text/p5','text/p3','text/p4','text/p1','text/p2']", r); + } + + //==================================================================================================== + // Test encoder inheritance. + //==================================================================================================== + @Test + public void testEncoders() throws Exception { + String url = "/testInheritanceEncoders"; + String r = client.doGet(url + "/test").getResponseAsString(); + assertEquals("['e3','e4','e1','e2','identity']", r); + } + + //==================================================================================================== + // Test filter inheritance. + //==================================================================================================== + @Test + public void testTransforms() throws Exception { + RestClient client = TestMicroservice.client().accept("text/json+simple").build(); + String r; + String url = "/testInheritanceTransforms"; + + r = client.doGet(url + "/test1").getResponseAsString(); + assertEquals("['F1','F2','Foo3']", r); + + r = client.doGet(url + "/test2").getResponseAsString(); + assertEquals("['F1','F2','F3']", r); + + r = client.doGet(url + "/test3").getResponseAsString(); + assertEquals("['F1','F2','F3']", r); + + r = client.doGet(url + "/test4").getResponseAsString(); + assertEquals("['Foo1','Foo2','F3']", r); + + r = client.doGet(url + "/test5").getResponseAsString(); + assertEquals("['F1','F2','F3']", r); + + client.closeQuietly(); + } + + //==================================================================================================== + // Test properties inheritance. + //==================================================================================================== + @Test + public void testProperties() throws Exception { + RestClient client = TestMicroservice.client().accept("text/json+simple").build(); + String r; + String url = "/testInheritanceProperties"; + + r = client.doGet(url + "/test1").getResponseAsString(); + assertEquals("{p1:'v1',p2:'v2a',p3:'v3',p4:'v4'}", r); + + r = client.doGet(url + "/test2?override").getResponseAsString(); + assertEquals("{p1:'x',p2:'x',p3:'x',p4:'x',p5:'x'}", r); + + r = client.doGet(url + "/test2").getResponseAsString(); + assertEquals("{p1:'v1',p2:'v2a',p3:'v3',p4:'v4a',p5:'v5'}", r); + + client.closeQuietly(); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InheritanceTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,833 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.apache.juneau.rest.test.TestUtils.*; +import static org.apache.juneau.rest.test.pojos.Constants.*; +import static org.junit.Assert.*; + +import java.util.*; + +import org.apache.juneau.html.*; +import org.apache.juneau.jena.*; +import org.apache.juneau.json.*; +import org.apache.juneau.msgpack.*; +import org.apache.juneau.parser.*; +import org.apache.juneau.rest.test.pojos.*; +import org.apache.juneau.serializer.*; +import org.apache.juneau.uon.*; +import org.apache.juneau.urlencoding.*; +import org.apache.juneau.utils.*; +import org.apache.juneau.xml.*; +import org.junit.*; +import org.junit.runner.*; +import org.junit.runners.*; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +@RunWith(Parameterized.class) +public class InterfaceProxyTest extends RestTestcase { + + @Parameterized.Parameters + public static Collection getParameters() { + return Arrays.asList(new Object[][] { + { /* 0 */ "Json", JsonSerializer.DEFAULT, JsonParser.DEFAULT }, + { /* 1 */ "Xml", XmlSerializer.DEFAULT, XmlParser.DEFAULT }, + { /* 2 */ "Mixed", JsonSerializer.DEFAULT, XmlParser.DEFAULT }, + { /* 3 */ "Html", HtmlSerializer.DEFAULT, HtmlParser.DEFAULT }, + { /* 4 */ "MessagePack", MsgPackSerializer.DEFAULT, MsgPackParser.DEFAULT }, + { /* 5 */ "UrlEncoding", UrlEncodingSerializer.DEFAULT, UrlEncodingParser.DEFAULT }, + { /* 6 */ "Uon", UonSerializer.DEFAULT, UonParser.DEFAULT }, + { /* 7 */ "RdfXml", RdfSerializer.DEFAULT_XMLABBREV, RdfParser.DEFAULT_XML }, + }); + } + + private InterfaceProxy proxy; + + public InterfaceProxyTest(String label, Serializer serializer, Parser parser) { + proxy = getCached(label, InterfaceProxy.class); + if (proxy == null) { + proxy = getClient(label, serializer, parser).getRemoteableProxy(InterfaceProxy.class, "/testInterfaceProxyResource/proxy"); + cache(label, proxy); + } + } + + //-------------------------------------------------------------------------------- + // Test return types. + //-------------------------------------------------------------------------------- + + // Various primitives + @Test + public void a01_returnVoid() { + proxy.returnVoid(); + } + + @Test + public void a02_returnInteger() { + assertEquals((Integer)1, proxy.returnInteger()); + } + + @Test + public void a03_returnInt() { + assertEquals(1, proxy.returnInt()); + } + + @Test + public void a04_returnBoolean() { + assertEquals(true, proxy.returnBoolean()); + } + + @Test + public void a05_returnFloat() { + assertTrue(1f == proxy.returnFloat()); + } + + @Test + public void a06_returnFloatObject() { + assertTrue(1f == proxy.returnFloatObject()); + } + + @Test + public void a07_returnString() { + assertEquals("foobar", proxy.returnString()); + } + + @Test + public void a08_returnNullString() { + assertNull(proxy.returnNullString()); + } + + @Test + public void a09_returnInt3dArray() { + assertObjectEquals("[[[1,2],null],null]", proxy.returnInt3dArray()); + } + + @Test + public void a10_returnInteger3dArray() { + assertObjectEquals("[[[1,null],null],null]", proxy.returnInteger3dArray()); + } + + @Test + public void a11_returnString3dArray() { + assertObjectEquals("[[['foo','bar',null],null],null]", proxy.returnString3dArray()); + } + + @Test + public void a12_returnIntegerList() { + List x = proxy.returnIntegerList(); + assertObjectEquals("[1,null]", x); + assertClass(Integer.class, x.get(0)); + } + + @Test + public void a13_returnInteger3dList() { + List>> x = proxy.returnInteger3dList(); + assertObjectEquals("[[[1,null],null],null]", x); + assertClass(Integer.class, x.get(0).get(0).get(0)); + } + + @Test + public void a14_returnInteger1d3dList() { + List x = proxy.returnInteger1d3dList(); + assertObjectEquals("[[[[1,null],null],null],null]", x); + assertClass(Integer.class, x.get(0)[0][0][0]); + } + + @Test + public void a15_returnInt1d3dList() { + List x = proxy.returnInt1d3dList(); + assertObjectEquals("[[[[1,2],null],null],null]", x); + assertClass(int[][][].class, x.get(0)); + } + + @Test + public void a16_returnStringList() { + assertObjectEquals("['foo','bar',null]", proxy.returnStringList()); + } + + // Beans + + @Test + public void b01_returnBean() { + ABean x = proxy.returnBean(); + assertObjectEquals("{a:1,b:'foo'}", x); + assertClass(ABean.class, x); + } + + @Test + public void b02_returnBean3dArray() { + ABean[][][] x = proxy.returnBean3dArray(); + assertObjectEquals("[[[{a:1,b:'foo'},null],null],null]", x); + assertClass(ABean.class, x[0][0][0]); + } + + @Test + public void b03_returnBeanList() { + List x = proxy.returnBeanList(); + assertObjectEquals("[{a:1,b:'foo'}]", x); + assertClass(ABean.class, x.get(0)); + } + + @Test + public void b04_returnBean1d3dList() { + List x = proxy.returnBean1d3dList(); + assertObjectEquals("[[[[{a:1,b:'foo'},null],null],null],null]", x); + assertClass(ABean.class, x.get(0)[0][0][0]); + } + + @Test + public void b05_returnBeanMap() { + Map x = proxy.returnBeanMap(); + assertObjectEquals("{foo:{a:1,b:'foo'}}", x); + assertClass(ABean.class, x.get("foo")); + } + + @Test + public void b06_returnBeanListMap() { + Map> x = proxy.returnBeanListMap(); + assertObjectEquals("{foo:[{a:1,b:'foo'}]}", x); + assertClass(ABean.class, x.get("foo").get(0)); + } + + @Test + public void b07_returnBean1d3dListMap() { + Map> x = proxy.returnBean1d3dListMap(); + assertObjectEquals("{foo:[[[[{a:1,b:'foo'},null],null],null],null]}", x); + assertClass(ABean.class, x.get("foo").get(0)[0][0][0]); + } + + @Test + public void b08_returnBeanListMapIntegerKeys() { + // Note: JsonSerializer serializes key as string. + Map> x = proxy.returnBeanListMapIntegerKeys(); + assertObjectEquals("{'1':[{a:1,b:'foo'}]}", x); + assertClass(Integer.class, x.keySet().iterator().next()); + } + + // Typed beans + + @Test + public void c01_returnTypedBean() { + TypedBean x = proxy.returnTypedBean(); + assertObjectEquals("{_type:'TypedBeanImpl',a:1,b:'foo'}", x); + assertClass(TypedBeanImpl.class, x); + } + + @Test + public void c02_returnTypedBean3dArray() { + TypedBean[][][] x = proxy.returnTypedBean3dArray(); + assertObjectEquals("[[[{_type:'TypedBeanImpl',a:1,b:'foo'},null],null],null]", x); + assertClass(TypedBeanImpl.class, x[0][0][0]); + } + + @Test + public void c03_returnTypedBeanList() { + List x = proxy.returnTypedBeanList(); + assertObjectEquals("[{_type:'TypedBeanImpl',a:1,b:'foo'}]", x); + assertClass(TypedBeanImpl.class, x.get(0)); + } + + @Test + public void c04_returnTypedBean1d3dList() { + List x = proxy.returnTypedBean1d3dList(); + assertObjectEquals("[[[[{_type:'TypedBeanImpl',a:1,b:'foo'},null],null],null],null]", x); + assertClass(TypedBeanImpl.class, x.get(0)[0][0][0]); + } + + @Test + public void c05_returnTypedBeanMap() { + Map x = proxy.returnTypedBeanMap(); + assertObjectEquals("{foo:{_type:'TypedBeanImpl',a:1,b:'foo'}}", x); + assertClass(TypedBeanImpl.class, x.get("foo")); + } + + @Test + public void c06_returnTypedBeanListMap() { + Map> x = proxy.returnTypedBeanListMap(); + assertObjectEquals("{foo:[{_type:'TypedBeanImpl',a:1,b:'foo'}]}", x); + assertClass(TypedBeanImpl.class, x.get("foo").get(0)); + } + + @Test + public void c07_returnTypedBean1d3dListMap() { + Map> x = proxy.returnTypedBean1d3dListMap(); + assertObjectEquals("{foo:[[[[{_type:'TypedBeanImpl',a:1,b:'foo'},null],null],null],null]}", x); + assertClass(TypedBeanImpl.class, x.get("foo").get(0)[0][0][0]); + } + + @Test + public void c08_returnTypedBeanListMapIntegerKeys() { + // Note: JsonSerializer serializes key as string. + Map> x = proxy.returnTypedBeanListMapIntegerKeys(); + assertObjectEquals("{'1':[{_type:'TypedBeanImpl',a:1,b:'foo'}]}", x); + assertClass(TypedBeanImpl.class, x.get(1).get(0)); + } + + // Swapped POJOs + + @Test + public void d01_returnSwappedPojo() { + SwappedPojo x = proxy.returnSwappedPojo(); + assertObjectEquals("'"+SWAP+"'", x); + assertTrue(x.wasUnswapped); + } + + @Test + public void d02_returnSwappedPojo3dArray() { + SwappedPojo[][][] x = proxy.returnSwappedPojo3dArray(); + assertObjectEquals("[[['"+SWAP+"',null],null],null]", x); + assertTrue(x[0][0][0].wasUnswapped); + } + + @Test + public void d03_returnSwappedPojoMap() { + Map x = proxy.returnSwappedPojoMap(); + assertObjectEquals("{'"+SWAP+"':'"+SWAP+"'}", x); + Map.Entry e = x.entrySet().iterator().next(); + assertTrue(e.getKey().wasUnswapped); + assertTrue(e.getValue().wasUnswapped); + } + + @Test + public void d04_returnSwappedPojo3dMap() { + Map x = proxy.returnSwappedPojo3dMap(); + assertObjectEquals("{'"+SWAP+"':[[['"+SWAP+"',null],null],null]}", x); + Map.Entry e = x.entrySet().iterator().next(); + assertTrue(e.getKey().wasUnswapped); + assertTrue(e.getValue()[0][0][0].wasUnswapped); + } + + // Implicit swapped POJOs + + @Test + public void e01_returnImplicitSwappedPojo() { + ImplicitSwappedPojo x = proxy.returnImplicitSwappedPojo(); + assertObjectEquals("'"+SWAP+"'", x); + assertTrue(x.wasUnswapped); + } + + @Test + public void e02_returnImplicitSwappedPojo3dArray() { + ImplicitSwappedPojo[][][] x = proxy.returnImplicitSwappedPojo3dArray(); + assertObjectEquals("[[['"+SWAP+"',null],null],null]", x); + assertTrue(x[0][0][0].wasUnswapped); + } + + @Test + public void e03_returnImplicitSwappedPojoMap() { + Map x = proxy.returnImplicitSwappedPojoMap(); + assertObjectEquals("{'"+SWAP+"':'"+SWAP+"'}", x); + Map.Entry e = x.entrySet().iterator().next(); + assertTrue(e.getKey().wasUnswapped); + assertTrue(e.getValue().wasUnswapped); + } + + @Test + public void e04_returnImplicitSwappedPojo3dMap() { + Map x = proxy.returnImplicitSwappedPojo3dMap(); + assertObjectEquals("{'"+SWAP+"':[[['"+SWAP+"',null],null],null]}", x); + Map.Entry e = x.entrySet().iterator().next(); + assertTrue(e.getKey().wasUnswapped); + assertTrue(e.getValue()[0][0][0].wasUnswapped); + } + + // Enums + + @Test + public void f01_returnEnum() { + TestEnum x = proxy.returnEnum(); + assertObjectEquals("'TWO'", x); + } + + @Test + public void f02_returnEnum3d() { + TestEnum[][][] x = proxy.returnEnum3d(); + assertObjectEquals("[[['TWO',null],null],null]", x); + assertClass(TestEnum.class, x[0][0][0]); + } + + @Test + public void f03_returnEnumList() { + List x = proxy.returnEnumList(); + assertObjectEquals("['TWO',null]", x); + assertClass(TestEnum.class, x.get(0)); + } + + @Test + public void f04_returnEnum3dList() { + List>> x = proxy.returnEnum3dList(); + assertObjectEquals("[[['TWO',null],null,null]]", x); + assertClass(TestEnum.class, x.get(0).get(0).get(0)); + } + + @Test + public void f05_returnEnum1d3dList() { + List x = proxy.returnEnum1d3dList(); + assertObjectEquals("[[[['TWO',null],null],null],null]", x); + assertClass(TestEnum[][][].class, x.get(0)); + } + + @Test + public void f06_returnEnumMap() { + Map x = proxy.returnEnumMap(); + assertObjectEquals("{ONE:'TWO'}", x); + Map.Entry e = x.entrySet().iterator().next(); + assertClass(TestEnum.class, e.getKey()); + assertClass(TestEnum.class, e.getValue()); + } + + @Test + public void f07_returnEnum3dArrayMap() { + Map x = proxy.returnEnum3dArrayMap(); + assertObjectEquals("{ONE:[[['TWO',null],null],null]}", x); + Map.Entry e = x.entrySet().iterator().next(); + assertClass(TestEnum.class, e.getKey()); + assertClass(TestEnum[][][].class, e.getValue()); + } + + @Test + public void f08_returnEnum1d3dListMap() { + Map> x = proxy.returnEnum1d3dListMap(); + assertObjectEquals("{ONE:[[[['TWO',null],null],null],null]}", x); + assertClass(TestEnum[][][].class, x.get(TestEnum.ONE).get(0)); + } + + //-------------------------------------------------------------------------------- + // Test server-side exception serialization. + //-------------------------------------------------------------------------------- + + @Test + public void g01_throwException1() { + try { + proxy.throwException1(); + fail("Exception expected"); + } catch (InterfaceProxy.InterfaceProxyException1 e) { + assertEquals("foo", e.getMessage()); + } + } + + @Test + public void g02_throwException2() { + try { + proxy.throwException2(); + fail("Exception expected"); + } catch (InterfaceProxy.InterfaceProxyException2 e) { + } + } + + //-------------------------------------------------------------------------------- + // Test parameters + //-------------------------------------------------------------------------------- + + // Various primitives + @Test + public void h01_setNothing() { + proxy.setNothing(); + } + + @Test + public void h02_setInt() { + proxy.setInt(1); + } + + @Test + public void h03_setWrongInt() { + try { + proxy.setInt(2); + fail("Exception expected"); + } catch (AssertionError e) { // AssertionError thrown on server side. + assertEquals("expected:<1> but was:<2>", e.getMessage()); + } + } + + @Test + public void h04_setInteger() { + proxy.setInteger(1); + } + + @Test + public void h05_setBoolean() { + proxy.setBoolean(true); + } + + @Test + public void h06_setFloat() { + proxy.setFloat(1f); + } + + @Test + public void h07_setFloatObject() { + proxy.setFloatObject(1f); + } + + @Test + public void h08_setString() { + proxy.setString("foo"); + } + + @Test + public void h09_setNullString() { + proxy.setNullString(null); + } + + @Test + public void h10_setNullStringBad() { + try { + proxy.setNullString("foo"); + fail("Exception expected"); + } catch (AssertionError e) { // AssertionError thrown on server side. + assertEquals("expected null, but was:", e.getLocalizedMessage()); + } + } + + @Test + public void h11_setInt3dArray() { + proxy.setInt3dArray(new int[][][]{{{1,2},null},null}); + } + + @Test + public void h12_setInteger3dArray() { + proxy.setInteger3dArray(new Integer[][][]{{{1,null},null},null}); + } + + @Test + public void h13_setString3dArray() { + proxy.setString3dArray(new String[][][]{{{"foo",null},null},null}); + } + + @Test + public void h14_setIntegerList() { + proxy.setIntegerList(new AList().append(1).append(null)); + } + + @Test + public void h15_setInteger3dList() { + proxy.setInteger3dList( + new AList>>() + .append( + new AList>() + .append(new AList().append(1).append(null)) + .append(null) + ) + .append(null) + ); + } + + @Test + public void h16_setInteger1d3dList() { + proxy.setInteger1d3dList( + new AList().append(new Integer[][][]{{{1,null},null},null}).append(null) + ); + } + + @Test + public void h17_setInt1d3dList() { + proxy.setInt1d3dList( + new AList().append(new int[][][]{{{1,2},null},null}).append(null) + ); + } + + @Test + public void h18_setStringList() { + proxy.setStringList(Arrays.asList("foo","bar",null)); + } + + // Beans + @Test + public void h19_setBean() { + proxy.setBean(new ABean().init()); + } + + @Test + public void h20_setBean3dArray() { + proxy.setBean3dArray(new ABean[][][]{{{new ABean().init(),null},null},null}); + } + + @Test + public void h21_setBeanList() { + proxy.setBeanList(Arrays.asList(new ABean().init())); + } + + @Test + public void h22_setBean1d3dList() { + proxy.setBean1d3dList(new AList().append(new ABean[][][]{{{new ABean().init(),null},null},null}).append(null)); + } + + @Test + public void h23_setBeanMap() { + proxy.setBeanMap(new AMap().append("foo",new ABean().init())); + } + + @Test + public void h24_setBeanListMap() { + proxy.setBeanListMap(new AMap>().append("foo",Arrays.asList(new ABean().init()))); + } + + @Test + public void h25_setBean1d3dListMap() { + proxy.setBean1d3dListMap(new AMap>().append("foo",new AList().append(new ABean[][][]{{{new ABean().init(),null},null},null}).append(null))); + } + + @Test + public void h26_setBeanListMapIntegerKeys() { + proxy.setBeanListMapIntegerKeys(new AMap>().append(1,Arrays.asList(new ABean().init()))); + } + + // Typed beans + + @Test + public void i01_setTypedBean() { + proxy.setTypedBean(new TypedBeanImpl().init()); + } + + @Test + public void i02_setTypedBean3dArray() { + proxy.setTypedBean3dArray(new TypedBean[][][]{{{new TypedBeanImpl().init(),null},null},null}); + } + + @Test + public void i03_setTypedBeanList() { + proxy.setTypedBeanList(Arrays.asList((TypedBean)new TypedBeanImpl().init())); + } + + @Test + public void i04_setTypedBean1d3dList() { + proxy.setTypedBean1d3dList(new AList().append(new TypedBean[][][]{{{new TypedBeanImpl().init(),null},null},null}).append(null)); + } + + @Test + public void i05_setTypedBeanMap() { + proxy.setTypedBeanMap(new AMap().append("foo",new TypedBeanImpl().init())); + } + + @Test + public void i06_setTypedBeanListMap() { + proxy.setTypedBeanListMap(new AMap>().append("foo",Arrays.asList((TypedBean)new TypedBeanImpl().init()))); + } + + @Test + public void i07_setTypedBean1d3dListMap() { + proxy.setTypedBean1d3dListMap(new AMap>().append("foo",new AList().append(new TypedBean[][][]{{{new TypedBeanImpl().init(),null},null},null}).append(null))); + } + + @Test + public void i08_setTypedBeanListMapIntegerKeys() { + proxy.setTypedBeanListMapIntegerKeys(new AMap>().append(1,Arrays.asList((TypedBean)new TypedBeanImpl().init()))); + } + + // Swapped POJOs + + @Test + public void j01_setSwappedPojo() { + proxy.setSwappedPojo(new SwappedPojo()); + } + + @Test + public void j02_setSwappedPojo3dArray() { + proxy.setSwappedPojo3dArray(new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null}); + } + + @Test + public void j03_setSwappedPojoMap() { + proxy.setSwappedPojoMap(new AMap().append(new SwappedPojo(), new SwappedPojo())); + } + + @Test + public void j04_setSwappedPojo3dMap() { + proxy.setSwappedPojo3dMap(new AMap().append(new SwappedPojo(), new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null})); + } + + // Implicit swapped POJOs + @Test + public void k01_setImplicitSwappedPojo() { + proxy.setImplicitSwappedPojo(new ImplicitSwappedPojo()); + } + + @Test + public void k02_setImplicitSwappedPojo3dArray() { + proxy.setImplicitSwappedPojo3dArray(new ImplicitSwappedPojo[][][]{{{new ImplicitSwappedPojo(),null},null},null}); + } + + @Test + public void k03_setImplicitSwappedPojoMap() { + proxy.setImplicitSwappedPojoMap(new AMap().append(new ImplicitSwappedPojo(), new ImplicitSwappedPojo())); + } + + @Test + public void k04_setImplicitSwappedPojo3dMap() { + proxy.setImplicitSwappedPojo3dMap(new AMap().append(new ImplicitSwappedPojo(), new ImplicitSwappedPojo[][][]{{{new ImplicitSwappedPojo(),null},null},null})); + } + + // Enums + + @Test + public void l01_setEnum() { + proxy.setEnum(TestEnum.TWO); + } + + @Test + public void l02_setEnum3d() { + proxy.setEnum3d(new TestEnum[][][]{{{TestEnum.TWO,null},null},null}); + } + + @Test + public void l03_setEnumList() { + proxy.setEnumList(new AList().append(TestEnum.TWO).append(null)); + } + + @Test + public void l04_setEnum3dList() { + proxy.setEnum3dList( + new AList>>() + .append( + new AList>() + .append( + new AList().append(TestEnum.TWO).append(null) + ) + .append(null) + .append(null) + ) + ); + } + + @Test + public void l05_setEnum1d3dList() { + proxy.setEnum1d3dList(new AList().append(new TestEnum[][][]{{{TestEnum.TWO,null},null},null}).append(null)); + } + + @Test + public void l06_setEnumMap() { + proxy.setEnumMap(new AMap().append(TestEnum.ONE,TestEnum.TWO)); + } + + @Test + public void l07_setEnum3dArrayMap() { + proxy.setEnum3dArrayMap(new AMap().append(TestEnum.ONE, new TestEnum[][][]{{{TestEnum.TWO,null},null},null})); + } + + @Test + public void l08_setEnum1d3dListMap() { + proxy.setEnum1d3dListMap(new AMap>().append(TestEnum.ONE, new AList().append(new TestEnum[][][]{{{TestEnum.TWO,null},null},null}).append(null))); + } + + //-------------------------------------------------------------------------------- + // Test multi-parameters + //-------------------------------------------------------------------------------- + + @Test + public void m01_setMultiParamsInts() { + int x1 = 1; + int[][][] x2 = new int[][][]{{{1,2},null},null}; + int[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + proxy.setMultiParamsInts(x1, x2, x2n, x3, x3n); + } + + @Test + public void m02_setMultiParamsInteger() { + Integer x1 = 1; + Integer x1n = null; + Integer[][][] x2 = new Integer[][][]{{{1,null},null},null}; + Integer[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + proxy.setMultiParamsInteger(x1, x1n, x2, x2n, x3, x3n); + } + + @Test + public void m03_setMultiParamsFloat() { + float x1 = 1; + float[][][] x2 = new float[][][]{{{1,2},null},null}; + float[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + proxy.setMultiParamsFloat(x1, x2, x2n, x3, x3n); + } + + @Test + public void m04_setMultiParamsFloatObject() { + Float x1 = 1f; + Float x1n = null; + Float[][][] x2 = new Float[][][]{{{1f,null},null},null}; + Float[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + proxy.setMultiParamsFloatObject(x1, x1n, x2, x2n, x3, x3n); + } + + @Test + public void m05_setMultiParamsString() { + String x1 = "foo"; + String[][][] x2 = new String[][][]{{{"foo",null},null},null}; + String[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + proxy.setMultiParamsString(x1, x2, x2n, x3, x3n); + } + + @Test + public void m06_setMultiParamsBean() { + ABean x1 = new ABean().init(); + ABean[][][] x2 = new ABean[][][]{{{new ABean().init(),null},null},null}; + ABean[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + Map x4 = new AMap().append("foo",new ABean().init()); + Map x4n = null; + Map> x5 = new AMap>().append("foo", x3); + Map> x5n = null; + proxy.setMultiParamsBean(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } + + @Test + public void m07_setMultiParamsSwappedPojo() { + SwappedPojo x1 = new SwappedPojo(); + SwappedPojo[][][] x2 = new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null}; + SwappedPojo[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + Map x4 = new AMap().append(new SwappedPojo(), new SwappedPojo()); + Map x4n = null; + Map> x5 = new AMap>().append(new SwappedPojo(), x3); + Map> x5n = null; + proxy.setMultiParamsSwappedPojo(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } + + @Test + public void m08_setMultiParamsImplicitSwappedPojo() { + ImplicitSwappedPojo x1 = new ImplicitSwappedPojo(); + ImplicitSwappedPojo[][][] x2 = new ImplicitSwappedPojo[][][]{{{new ImplicitSwappedPojo(),null},null},null}; + ImplicitSwappedPojo[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + Map x4 = new AMap().append(new ImplicitSwappedPojo(), new ImplicitSwappedPojo()); + Map x4n = null; + Map> x5 = new AMap>().append(new ImplicitSwappedPojo(), x3); + Map> x5n = null; + proxy.setMultiParamsImplicitSwappedPojo(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } + + @Test + public void m09_setMultiParamsEnum() { + TestEnum x1 = TestEnum.TWO; + TestEnum[][][] x2 = new TestEnum[][][]{{{TestEnum.TWO,null},null},null}; + TestEnum[][][] x2n = null; + List x3 = new AList().append(x2).append(null); + List x3n = null; + Map x4 = new AMap().append(TestEnum.ONE,TestEnum.TWO); + Map x4n = null; + Map> x5 = new AMap>().append(TestEnum.ONE, x3); + Map> x5n = null; + proxy.setMultiParamsEnum(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/JacocoDummyTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/JacocoDummyTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/JacocoDummyTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,38 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import java.lang.reflect.*; + +import org.apache.juneau.rest.*; +import org.junit.*; + +public class JacocoDummyTest { + + //==================================================================================================== + // Dummy code to add test coverage in Jacoco. + //==================================================================================================== + @Test + public void accessPrivateConstructorsOnStaticUtilityClasses() throws Exception { + + Class[] classes = new Class[] { + RestUtils.class + }; + + for (Class c : classes) { + Constructor c1 = c.getDeclaredConstructor(); + c1.setAccessible(true); + c1.newInstance(); + } + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/JacocoDummyTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/LargePojosTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/LargePojosTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/LargePojosTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,84 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import org.apache.juneau.html.*; +import org.apache.juneau.rest.client.*; +import org.apache.juneau.uon.*; +import org.apache.juneau.xml.*; +import org.junit.*; + +@Ignore +public class LargePojosTest extends RestTestcase { + + private static String URL = "/testLargePojos"; + boolean debug = false; + + //==================================================================================================== + // Test how long it takes to serialize/parse various content types. + //==================================================================================================== + @Test + public void test() throws Exception { + LargePojo p; + long t; + RestClient c; + + System.err.println("\n---Testing JSON---"); + c = TestMicroservice.DEFAULT_CLIENT; + for (int i = 1; i <= 3; i++) { + t = System.currentTimeMillis(); + p = c.doGet(URL).getResponse(LargePojo.class); + System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms"); + t = System.currentTimeMillis(); + c.doPut(URL, p).run(); + System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms"); + } + + System.err.println("\n---Testing XML---"); + c = TestMicroservice.client(XmlSerializer.class, XmlParser.class).build(); + for (int i = 1; i <= 3; i++) { + t = System.currentTimeMillis(); + p = c.doGet(URL).getResponse(LargePojo.class); + System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms"); + t = System.currentTimeMillis(); + c.doPut(URL, p).run(); + System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms"); + } + + System.err.println("\n---Testing HTML---"); + c = TestMicroservice.client(HtmlSerializer.class, HtmlParser.class).accept("text/html+stripped").build(); + for (int i = 1; i <= 3; i++) { + t = System.currentTimeMillis(); + p = c.doGet(URL).getResponse(LargePojo.class); + System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms"); + t = System.currentTimeMillis(); + c.doPut(URL, p).run(); + System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms"); + } + + c.closeQuietly(); + + System.err.println("\n---Testing UrlEncoding---"); + c = TestMicroservice.client(UonSerializer.class, UonParser.class).build(); + for (int i = 1; i <= 3; i++) { + t = System.currentTimeMillis(); + p = c.doGet(URL).getResponse(LargePojo.class); + System.err.println("Download: ["+(System.currentTimeMillis() - t)+"] ms"); + t = System.currentTimeMillis(); + c.doPut(URL, p).run(); + System.err.println("Upload: ["+(System.currentTimeMillis() - t)+"] ms"); + } + + c.closeQuietly(); + } +} \ No newline at end of file Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/LargePojosTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/MessagesTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/MessagesTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/MessagesTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,44 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.apache.juneau.rest.test.TestUtils.*; + +import java.util.*; + +import org.apache.juneau.rest.client.*; +import org.junit.*; + +/** + * Validates that resource bundles can be defined on both parent and child classes. + */ +public class MessagesTest extends RestTestcase { + + //==================================================================================================== + // Return contents of resource bundle. + //==================================================================================================== + @SuppressWarnings("rawtypes") + @Test + public void test() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT; + + // Parent resource should just pick up values from its bundle. + TreeMap r = client.doGet("/testMessages/test").getResponse(TreeMap.class); + assertObjectEquals("{key1:'value1a',key2:'value2a'}", r); + + // Child resource should pick up values from both parent and child, + // ordered child before parent. + r = client.doGet("/testMessages2/test").getResponse(TreeMap.class); + assertObjectEquals("{key1:'value1a',key2:'value2b',key3:'value3b'}", r); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/MessagesTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/NlsPropertyTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/NlsPropertyTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/NlsPropertyTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,43 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import org.apache.juneau.rest.client.*; +import org.junit.*; + +public class NlsPropertyTest extends RestTestcase { + + private static String URL = "/testNlsProperty"; + + //==================================================================================================== + // Test getting an NLS property defined on a class. + //==================================================================================================== + @Test + public void testInheritedFromClass() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT_PLAINTEXT; + String r = client.doGet(URL + "/testInheritedFromClass").getResponseAsString(); + assertEquals("value1", r); + } + + //==================================================================================================== + // Test getting an NLS property defined on a method. + //==================================================================================================== + @Test + public void testInheritedFromMethod() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT_PLAINTEXT; + String r = client.doGet(URL + "/testInheritedFromMethod").getResponseAsString(); + assertEquals("value2", r); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/NlsPropertyTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain