This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new f10a05a  JUnits for BasicRestInfoProvider
f10a05a is described below

commit f10a05a8c326c199a2cf4f57b6d9d6f1d5b9ade1
Author: JamesBognar <jamesbog...@apache.org>
AuthorDate: Sat Apr 21 14:12:03 2018 -0400

    JUnits for BasicRestInfoProvider
---
 .../apache/juneau/rest/BasicRestInfoProvider.java  |  11 +-
 .../juneau/rest/BasicRestInfoProviderTest.java     | 584 +++++++++++++++++++--
 .../rest/BasicRestInfoProviderTest_swagger.json    |  34 +-
 3 files changed, 591 insertions(+), 38 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
index 5021615..c9c7bbe 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
@@ -204,7 +204,10 @@ public class BasicRestInfoProvider implements 
RestInfoProvider {
                        }
 
                        omSwagger.appendIf(true, true, true, "externalDocs", 
parseMap(join(r.externalDocs()), vr, false, true, 
"@ResourceSwagger(externalDocs) on class {0}", c));
-                       omSwagger.appendIf(true, true, true, "tags", 
parseList(join(r.tags()), vr, false, true, "@ResourceSwagger(tags) on class 
{0}", c));
+                       
+                       ObjectList tags = parseList(join(r.tags()), vr, false, 
true, "@ResourceSwagger(tags) on class {0}", c);
+                       if (tags != null)
+                               omSwagger.getObjectList("tags", 
true).addAll(tags);
                }
 
                omSwagger.appendIf(true, true, true, "externalDocs", 
parseMap(mb.findFirstString(locale, "externalDocs"), vr, false, true, 
"Messages/externalDocs on class {0}", c));
@@ -438,9 +441,13 @@ public class BasicRestInfoProvider implements 
RestInfoProvider {
                                definitions.put(e.getKey(), 
fixSwaggerExtensions(e.getValue()));
                
                if (definitions.isEmpty())
-                       omSwagger.remove("definitions");                
+                       omSwagger.remove("definitions");        
+               
                if (tagMap.isEmpty())
                        omSwagger.remove("tags");
+               else
+                       omSwagger.put("tags", tagMap.values());
+               
                if (consumes.isEmpty())
                        omSwagger.remove("consumes");
                if (produces.isEmpty())
diff --git 
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
 
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
index 305291e..10cad52 100644
--- 
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
+++ 
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
@@ -12,6 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest;
 
+import static org.junit.Assert.assertEquals;
 import static org.apache.juneau.rest.TestUtils.*;
 
 import java.io.*;
@@ -30,18 +31,14 @@ public class BasicRestInfoProviderTest {
                RestContext rc = 
RestContext.create(resource).classpathResourceFinder(TestClasspathResourceFinder.class).build();
                RestRequest req = rc.getCallHandler().createRequest(new 
MockHttpServletRequest());
                RestInfoProvider ip = rc.getInfoProvider();
-               Swagger s = ip.getSwagger(req);
-               s.setSwagger(null);
-               return s;
+               return ip.getSwagger(req);
        }
 
        private Swagger getSwagger(Object resource) throws Exception {
                RestContext rc = RestContext.create(resource).build();
                RestRequest req = rc.getCallHandler().createRequest(new 
MockHttpServletRequest());
                RestInfoProvider ip = rc.getInfoProvider();
-               Swagger s = ip.getSwagger(req);
-               s.setSwagger(null);
-               return s;
+               return ip.getSwagger(req);
        }
        
        public static class TestClasspathResourceFinder extends 
ClasspathResourceFinderBasic {
@@ -52,80 +49,597 @@ public class BasicRestInfoProviderTest {
                                return 
BasicRestInfoProvider.class.getResourceAsStream("BasicRestinfoProviderTest_swagger.json");
                        return super.findResource(baseClass, name, locale);
                }
-               
+       }
+       
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /swagger
+       // "swagger": "2.0",
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       @RestResource()
+       public static class A01 {}
+       
+       @Test
+       public void a01_swagger_default() throws Exception {
+               assertEquals("2.0", getSwagger(new A01()).getSwagger());
+               assertEquals("0.0", getSwaggerWithFile(new A01()).getSwagger());
+       }
+
+       
+       @RestResource(swagger=@ResourceSwagger("{swagger:'3.0'}"))
+       public static class A02 {}
+       
+       @Test
+       public void a02_swagger_ResourceSwagger_value() throws Exception {
+               assertEquals("3.0", getSwagger(new A02()).getSwagger());
+               assertEquals("3.0", getSwaggerWithFile(new A02()).getSwagger());
        }
        
        
        
//-----------------------------------------------------------------------------------------------------------------
        // /info/title
+       // "title": "Swagger Petstore",
        
//-----------------------------------------------------------------------------------------------------------------
 
        @RestResource(title="a-title")
-       public static class A1 {}
+       public static class B01 {}
 
        @Test
-       public void title_RestResource_title() throws Exception {
-               assertObjectEquals("{info:{title:'a-title'}}", getSwagger(new 
A1()));
-               assertObjectEquals("{info:{title:'s-title'}}", 
getSwaggerWithFile(new A1()));
+       public void b01_title_RestResource_title() throws Exception {
+               assertEquals("a-title", getSwagger(new 
B01()).getInfo().getTitle());
+               assertEquals("s-title", getSwaggerWithFile(new 
B01()).getInfo().getTitle());
        }
 
        
        @RestResource(title="$L{foo}",messages="BasicRestInfoProviderTest")
-       public static class A1L {}
+       public static class B02 {}
 
        @Test
-       public void title_RestResource_title_localized() throws Exception {
-               assertObjectEquals("{info:{title:'l-foo'}}", getSwagger(new 
A1L()));
-               assertObjectEquals("{info:{title:'s-title'}}", 
getSwaggerWithFile(new A1L()));
+       public void b02_title_RestResource_title_localized() throws Exception {
+               assertEquals("l-foo", getSwagger(new 
B02()).getInfo().getTitle());
+               assertEquals("s-title", getSwaggerWithFile(new 
B02()).getInfo().getTitle());
        }
 
        
        @RestResource(title="a-title", 
swagger=@ResourceSwagger("{info:{title:'b-title'}}"))
-       public static class A2 {}
+       public static class B03 {}
 
        @Test
-       public void title_ResourceSwagger_value() throws Exception {
-               assertObjectEquals("{info:{title:'b-title'}}", getSwagger(new 
A2()));
-               assertObjectEquals("{info:{title:'b-title'}}", 
getSwaggerWithFile(new A2()));
+       public void b03_title_ResourceSwagger_value() throws Exception {
+               assertEquals("b-title", getSwagger(new 
B03()).getInfo().getTitle());
+               assertEquals("b-title", getSwaggerWithFile(new 
B03()).getInfo().getTitle());
        }
        
 
        @RestResource(title="a-title", 
swagger=@ResourceSwagger("{info:{title:'$L{bar}'}}"), 
messages="BasicRestInfoProviderTest")
-       public static class A2L {}
+       public static class B04 {}
        
        @Test
-       public void title_ResourceSwagger_value_localised() throws Exception {
-               assertObjectEquals("{info:{title:'l-bar'}}", getSwagger(new 
A2L()));
-               assertObjectEquals("{info:{title:'l-bar'}}", 
getSwaggerWithFile(new A2L()));
+       public void b04_title_ResourceSwagger_value_localised() throws 
Exception {
+               assertEquals("l-bar", getSwagger(new 
B04()).getInfo().getTitle());
+               assertEquals("l-bar", getSwaggerWithFile(new 
B04()).getInfo().getTitle());
        }
 
        
        @RestResource(title="a-title", 
swagger=@ResourceSwagger(value="{info:{title:'b-title'}}", title="c-title"))
-       public static class A3 {}
+       public static class B05 {}
 
        @Test
-       public void title_ResourceSwagger_title() throws Exception {
-               assertObjectEquals("{info:{title:'c-title'}}", getSwagger(new 
A3()));
-               assertObjectEquals("{info:{title:'c-title'}}", 
getSwaggerWithFile(new A3()));
+       public void b05_title_ResourceSwagger_title() throws Exception {
+               assertEquals("c-title", getSwagger(new 
B05()).getInfo().getTitle());
+               assertEquals("c-title", getSwaggerWithFile(new 
B05()).getInfo().getTitle());
        }
        
        
        @RestResource(title="a-title", 
swagger=@ResourceSwagger(value="{info:{title:'b-title'}}", title="$L{baz}"), 
messages="BasicRestInfoProviderTest")
-       public static class A3L {}
+       public static class B06 {}
        
        @Test
-       public void title_RsourceSwagger_title_localized() throws Exception {
-               assertObjectEquals("{info:{title:'l-baz'}}", getSwagger(new 
A3L()));
-               assertObjectEquals("{info:{title:'l-baz'}}", 
getSwaggerWithFile(new A3L()));
+       public void b06_title_ResourceSwagger_title_localized() throws 
Exception {
+               assertEquals("l-baz", getSwagger(new 
B06()).getInfo().getTitle());
+               assertEquals("l-baz", getSwaggerWithFile(new 
B06()).getInfo().getTitle());
        }
 
        
        @RestResource(swagger=@ResourceSwagger(title="c-title"))
-       public static class A4 {}
+       public static class B07 {}
+
+       @Test
+       public void b07_title_ResourceSwagger_title_only() throws Exception {
+               assertEquals("c-title", getSwagger(new 
B07()).getInfo().getTitle());
+               assertEquals("c-title", getSwaggerWithFile(new 
B07()).getInfo().getTitle());
+       }
+       
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /info/description
+       // "description": "This is a sample server Petstore server.  You can 
find out more about Swagger at [http://swagger.io](http://swagger.io) or on 
[irc.freenode.net, #swagger](http://swagger.io/irc/).  For this sample, you can 
use the api key `special-key` to test the authorization filters.",
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       @RestResource(description="a-description")
+       public static class C01 {}
+
+       @Test
+       public void c01_description_RestResource_description() throws Exception 
{
+               assertEquals("a-description", getSwagger(new 
C01()).getInfo().getDescription());
+               assertEquals("s-description", getSwaggerWithFile(new 
C01()).getInfo().getDescription());
+       }
+
+       
+       
@RestResource(description="$L{foo}",messages="BasicRestInfoProviderTest")
+       public static class C02 {}
+
+       @Test
+       public void c02_description_RestResource_description_localized() throws 
Exception {
+               assertEquals("l-foo", getSwagger(new 
C02()).getInfo().getDescription());
+               assertEquals("s-description", getSwaggerWithFile(new 
C02()).getInfo().getDescription());
+       }
+
+       
+       @RestResource(description="a-description", 
swagger=@ResourceSwagger("{info:{description:'b-description'}}"))
+       public static class C03 {}
+
+       @Test
+       public void c03_description_ResourceSwagger_value() throws Exception {
+               assertEquals("b-description", getSwagger(new 
C03()).getInfo().getDescription());
+               assertEquals("b-description", getSwaggerWithFile(new 
C03()).getInfo().getDescription());
+       }
+       
+
+       @RestResource(description="a-description", 
swagger=@ResourceSwagger("{info:{description:'$L{bar}'}}"), 
messages="BasicRestInfoProviderTest")
+       public static class C04 {}
+       
+       @Test
+       public void c04_description_ResourceSwagger_value_localised() throws 
Exception {
+               assertEquals("l-bar", getSwagger(new 
C04()).getInfo().getDescription());
+               assertEquals("l-bar", getSwaggerWithFile(new 
C04()).getInfo().getDescription());
+       }
+
+       
+       @RestResource(description="a-description", 
swagger=@ResourceSwagger(value="{info:{description:'b-description'}}", 
description="c-description"))
+       public static class C05 {}
+
+       @Test
+       public void c05_description_ResourceSwagger_description() throws 
Exception {
+               assertEquals("c-description", getSwagger(new 
C05()).getInfo().getDescription());
+               assertEquals("c-description", getSwaggerWithFile(new 
C05()).getInfo().getDescription());
+       }
+       
+       
+       @RestResource(description="a-description", 
swagger=@ResourceSwagger(value="{info:{description:'b-description'}}", 
description="$L{baz}"), messages="BasicRestInfoProviderTest")
+       public static class C06 {}
+       
+       @Test
+       public void c06_description_ResourceSwagger_description_localized() 
throws Exception {
+               assertEquals("l-baz", getSwagger(new 
C06()).getInfo().getDescription());
+               assertEquals("l-baz", getSwaggerWithFile(new 
C06()).getInfo().getDescription());
+       }
+
+       
+       @RestResource(swagger=@ResourceSwagger(description="c-description"))
+       public static class C07 {}
+
+       @Test
+       public void c07_description_ResourceSwagger_description_only() throws 
Exception {
+               assertEquals("c-description", getSwagger(new 
C07()).getInfo().getDescription());
+               assertEquals("c-description", getSwaggerWithFile(new 
C07()).getInfo().getDescription());
+       }
+
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /info/version
+       // "version": "1.0.0",
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class D01 {}
+       
+       @Test
+       public void d01_version_default() throws Exception {
+               assertEquals(null, getSwagger(new 
D01()).getInfo().getVersion());
+               assertEquals("0.0.0", getSwaggerWithFile(new 
D01()).getInfo().getVersion());
+       }
+
+
+       @RestResource(swagger=@ResourceSwagger("{info:{version:'2.0.0'}}"))
+       public static class D02 {}
+       
+       @Test
+       public void d02_version_ResourceSwagger_value() throws Exception {
+               assertEquals("2.0.0", getSwagger(new 
D02()).getInfo().getVersion());
+               assertEquals("2.0.0", getSwaggerWithFile(new 
D02()).getInfo().getVersion());
+       }
+
+       
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{version:'2.0.0'}}", 
version="3.0.0"))
+       public static class D03 {}
+       
+       @Test
+       public void d03_version_ResourceSwagger_version() throws Exception {
+               assertEquals("3.0.0", getSwagger(new 
D03()).getInfo().getVersion());
+               assertEquals("3.0.0", getSwaggerWithFile(new 
D03()).getInfo().getVersion());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{version:'2.0.0'}}", 
version="$L{foo}"), messages="BasicRestInfoProviderTest")
+       public static class D04 {}
+       
+       @Test
+       public void d04_version_ResourceSwagger_version_localised() throws 
Exception {
+               assertEquals("l-foo", getSwagger(new 
D04()).getInfo().getVersion());
+               assertEquals("l-foo", getSwaggerWithFile(new 
D04()).getInfo().getVersion());
+       }
+       
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /info/termsOfService
+       // "termsOfService": "http://swagger.io/terms/";,
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       @RestResource()
+       public static class E01 {}
+       
+       @Test
+       public void e01_termsOfService_default() throws Exception {
+               assertEquals(null, getSwagger(new 
E01()).getInfo().getTermsOfService());
+               assertEquals("s-termsOfService", getSwaggerWithFile(new 
E01()).getInfo().getTermsOfService());
+       }
+
+
+       
@RestResource(swagger=@ResourceSwagger("{info:{termsOfService:'a-termsOfService'}}"))
+       public static class E02 {}
+       
+       @Test
+       public void e02_termsOfService_ResourceSwagger_value() throws Exception 
{
+               assertEquals("a-termsOfService", getSwagger(new 
E02()).getInfo().getTermsOfService());
+               assertEquals("a-termsOfService", getSwaggerWithFile(new 
E02()).getInfo().getTermsOfService());
+       }
+
+       
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{termsOfService:'a-termsOfService'}}",
 termsOfService="b-termsOfService"))
+       public static class E03 {}
+       
+       @Test
+       public void e03_termsOfService_ResourceSwagger_termsOfService() throws 
Exception {
+               assertEquals("b-termsOfService", getSwagger(new 
E03()).getInfo().getTermsOfService());
+               assertEquals("b-termsOfService", getSwaggerWithFile(new 
E03()).getInfo().getTermsOfService());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{termsOfService:'a-termsOfService'}}",
 termsOfService="$L{foo}"), messages="BasicRestInfoProviderTest")
+       public static class E04 {}
+       
+       @Test
+       public void 
e04_termsOfService_ResourceSwagger_termsOfService_localised() throws Exception {
+               assertEquals("l-foo", getSwagger(new 
E04()).getInfo().getTermsOfService());
+               assertEquals("l-foo", getSwaggerWithFile(new 
E04()).getInfo().getTermsOfService());
+       }
+
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /info/contact
+       // "contact": {
+       //      "email": "apit...@swagger.io"
+       // },
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class F01 {}
+       
+       @Test
+       public void f01_contact_default() throws Exception {
+               assertEquals(null, getSwagger(new 
F01()).getInfo().getContact());
+               
assertObjectEquals("{name:'s-name',url:'s-url',email:'s-email'}", 
getSwaggerWithFile(new F01()).getInfo().getContact());
+       }
+
+
+       
@RestResource(swagger=@ResourceSwagger("{info:{contact:{name:'a-name',url:'a-url',email:'a-email'}}}"))
+       public static class F02 {}
+       
+       @Test
+       public void f02_contact_ResourceSwagger_value() throws Exception {
+               
assertObjectEquals("{name:'a-name',url:'a-url',email:'a-email'}", 
getSwagger(new F02()).getInfo().getContact());
+               
assertObjectEquals("{name:'a-name',url:'a-url',email:'a-email'}", 
getSwaggerWithFile(new F02()).getInfo().getContact());
+       }
+
+       
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{contact:{name:'a-name',url:'a-url',email:'a-email'}}}",
 contact="{name:'b-name',url:'b-url',email:'b-email'}"))
+       public static class F03 {}
+       
+       @Test
+       public void f03_contact_ResourceSwagger_contact() throws Exception {
+               
assertObjectEquals("{name:'b-name',url:'b-url',email:'b-email'}", 
getSwagger(new F03()).getInfo().getContact());
+               
assertObjectEquals("{name:'b-name',url:'b-url',email:'b-email'}", 
getSwaggerWithFile(new F03()).getInfo().getContact());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{contact:{name:'a-name',url:'a-url',email:'a-email'}}}",
 contact=" name:'b-name', url:'b-url', email:'b-email' "))
+       public static class F04 {}
+       
+       @Test
+       public void f04_contact_ResourceSwagger_contact() throws Exception {
+               
assertObjectEquals("{name:'b-name',url:'b-url',email:'b-email'}", 
getSwagger(new F04()).getInfo().getContact());
+               
assertObjectEquals("{name:'b-name',url:'b-url',email:'b-email'}", 
getSwaggerWithFile(new F04()).getInfo().getContact());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{contact:{name:'a-name',url:'a-url',email:'a-email'}}}",
 contact="{name:'$L{foo}',url:'$L{bar}',email:'$L{baz}'}"), 
messages="BasicRestInfoProviderTest")
+       public static class F05 {}
+       
+       @Test
+       public void f05_contact_ResourceSwagger_contact_localised() throws 
Exception {
+               assertObjectEquals("{name:'l-foo',url:'l-bar',email:'l-baz'}", 
getSwagger(new F05()).getInfo().getContact());
+               assertObjectEquals("{name:'l-foo',url:'l-bar',email:'l-baz'}", 
getSwaggerWithFile(new F05()).getInfo().getContact());
+       }
+       
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /info/license
+       // "license": {
+       //      "name": "Apache 2.0",
+       //      "url": "http://www.apache.org/licenses/LICENSE-2.0.html";
+       // }
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class G01 {}
+       
+       @Test
+       public void g01_license_default() throws Exception {
+               assertEquals(null, getSwagger(new 
G01()).getInfo().getLicense());
+               assertObjectEquals("{name:'s-name',url:'s-url'}", 
getSwaggerWithFile(new G01()).getInfo().getLicense());
+       }
+
+
+       
@RestResource(swagger=@ResourceSwagger("{info:{license:{name:'a-name',url:'a-url'}}}"))
+       public static class G02 {}
+       
+       @Test
+       public void g02_license_ResourceSwagger_value() throws Exception {
+               assertObjectEquals("{name:'a-name',url:'a-url'}", 
getSwagger(new G02()).getInfo().getLicense());
+               assertObjectEquals("{name:'a-name',url:'a-url'}", 
getSwaggerWithFile(new G02()).getInfo().getLicense());
+       }
+
+       
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{license:{name:'a-name',url:'a-url'}}}",
 license="{name:'b-name',url:'b-url'}"))
+       public static class G03 {}
+       
+       @Test
+       public void g03_license_ResourceSwagger_license() throws Exception {
+               assertObjectEquals("{name:'b-name',url:'b-url'}", 
getSwagger(new G03()).getInfo().getLicense());
+               assertObjectEquals("{name:'b-name',url:'b-url'}", 
getSwaggerWithFile(new G03()).getInfo().getLicense());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{license:{name:'a-name',url:'a-url'}}}",
 license=" name:'b-name', url:'b-url' "))
+       public static class G04 {}
+       
+       @Test
+       public void g04_license_ResourceSwagger_license() throws Exception {
+               assertObjectEquals("{name:'b-name',url:'b-url'}", 
getSwagger(new G04()).getInfo().getLicense());
+               assertObjectEquals("{name:'b-name',url:'b-url'}", 
getSwaggerWithFile(new G04()).getInfo().getLicense());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{license:{name:'a-name',url:'a-url'}}}",
 license="{name:'$L{foo}',url:'$L{bar}'}"), 
messages="BasicRestInfoProviderTest")
+       public static class G05 {}
+       
+       @Test
+       public void g05_license_ResourceSwagger_license_localised() throws 
Exception {
+               assertObjectEquals("{name:'l-foo',url:'l-bar'}", getSwagger(new 
G05()).getInfo().getLicense());
+               assertObjectEquals("{name:'l-foo',url:'l-bar'}", 
getSwaggerWithFile(new G05()).getInfo().getLicense());
+       }
+
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /host
+       // "host": "petstore.swagger.io",
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class H01 {}
+       
+       @Test
+       public void h01_host_default() throws Exception {
+               assertEquals(null, getSwagger(new H01()).getHost());
+               assertEquals("s-host", getSwaggerWithFile(new H01()).getHost());
+       }
 
+       
+       @RestResource(swagger=@ResourceSwagger("{host:'a-host'}"))
+       public static class H02 {}
+       
+       @Test
+       public void h02_host_ResourceSwagger_value() throws Exception {
+               assertEquals("a-host", getSwagger(new H02()).getHost());
+               assertEquals("a-host", getSwaggerWithFile(new H02()).getHost());
+       }
+       
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /basePath
+       // "basePath": "/v2",
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class I01 {}
+       
+       @Test
+       public void i01_basePath_default() throws Exception {
+               assertEquals(null, getSwagger(new I01()).getBasePath());
+               assertEquals("s-basePath", getSwaggerWithFile(new 
I01()).getBasePath());
+       }
+
+       
+       @RestResource(swagger=@ResourceSwagger("{basePath:'a-basePath'}"))
+       public static class I02 {}
+       
+       @Test
+       public void i02_basePath_ResourceSwagger_value() throws Exception {
+               assertEquals("a-basePath", getSwagger(new I02()).getBasePath());
+               assertEquals("a-basePath", getSwaggerWithFile(new 
I02()).getBasePath());
+       }
+
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /tags
+       // "tags": [
+       //      {
+       //              "name": "pet",
+       //              "description": "Everything about your Pets",
+       //              "externalDocs": {
+       //                      "description": "Find out more",
+       //                      "url": "http://swagger.io";
+       //              }
+       //      },
+       // ],
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class J01 {}
+       
+       @Test
+       public void j01_tags_default() throws Exception {
+               assertEquals(null, getSwagger(new J01()).getTags());
+               
assertObjectEquals("[{name:'s-name',description:'s-description',externalDocs:{description:'s-description',url:'s-url'}}]",
 getSwaggerWithFile(new J01()).getTags());
+       }
+
+       // Tags in @ResourceSwagger(value) should override file.
+       
@RestResource(swagger=@ResourceSwagger("{tags:[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}}]}"))
+       public static class J02 {}
+       
        @Test
-       public void title_RsourceSwagger_title_only() throws Exception {
-               assertObjectEquals("{info:{title:'c-title'}}", getSwagger(new 
A4()));
-               assertObjectEquals("{info:{title:'c-title'}}", 
getSwaggerWithFile(new A4()));
+       public void j02_tags_ResourceSwagger_value() throws Exception {
+               
assertObjectEquals("[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}}]",
 getSwagger(new J02()).getTags());
+               
assertObjectEquals("[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}}]",
 getSwaggerWithFile(new J02()).getTags());
        }
+
+       // Tags in both @ResourceSwagger(value) and @ResourceSwagger(tags) 
should accumulate.
+       
@RestResource(swagger=@ResourceSwagger(value="{tags:[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}}]}",
 
tags="[{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]"))
+       public static class J03 {}
+       
+       @Test
+       public void j03_tags_ResourceSwagger_tags() throws Exception {
+               
assertObjectEquals("[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}},{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]",
 getSwagger(new J03()).getTags());
+               
assertObjectEquals("[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}},{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]",
 getSwaggerWithFile(new J03()).getTags());
+       }
+
+       // Same as above but without [] outer characters.
+       
@RestResource(swagger=@ResourceSwagger(value="{tags:[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}}]}",
 tags=" { name:'b-name', description:'b-description', externalDocs: { 
description:'b-description', url:'b-url' } } "))
+       public static class J04 {}
+       
+       @Test
+       public void j04_tags_ResourceSwagger_tags() throws Exception {
+               
assertObjectEquals("[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}},{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]",
 getSwagger(new J04()).getTags());
+               
assertObjectEquals("[{name:'a-name',description:'a-description',externalDocs:{description:'a-description',url:'a-url'}},{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]",
 getSwaggerWithFile(new J04()).getTags());
+       }
+       
+       // Tags in both Swagger.json and @ResourceSwagger(tags) should 
accumulate.
+       
@RestResource(swagger=@ResourceSwagger(tags="[{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]"))
+       public static class J05 {}
+       
+       @Test
+       public void j05_tags_ResourceSwagger_tags_only() throws Exception {
+               
assertObjectEquals("[{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]",
 getSwagger(new J05()).getTags());
+               
assertObjectEquals("[{name:'s-name',description:'s-description',externalDocs:{description:'s-description',url:'s-url'}},{name:'b-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}}]",
 getSwaggerWithFile(new J05()).getTags());
+       }
+       
+       // Dup tag names should be overwritten
+       
@RestResource(swagger=@ResourceSwagger(tags="[{name:'s-name',description:'b-description',externalDocs:{description:'b-description',url:'b-url'}},{name:'s-name',description:'c-description',externalDocs:{description:'c-description',url:'c-url'}}]"))
+       public static class J06 {}
+       
+       @Test
+       public void j06_tags_ResourceSwagger_tags_dups() throws Exception {
+               
assertObjectEquals("[{name:'s-name',description:'c-description',externalDocs:{description:'c-description',url:'c-url'}}]",
 getSwagger(new J06()).getTags());
+               
assertObjectEquals("[{name:'s-name',description:'c-description',externalDocs:{description:'c-description',url:'c-url'}}]",
 getSwaggerWithFile(new J06()).getTags());
+       }
+
+
+       
@RestResource(swagger=@ResourceSwagger(value="{tags:[{name:'$L{foo}',description:'$L{foo}',externalDocs:{description:'$L{foo}',url:'$L{foo}'}}]}",
 
tags="[{name:'$L{foo}',description:'$L{foo}',externalDocs:{description:'$L{foo}',url:'$L{foo}'}}]"),
 messages="BasicRestInfoProviderTest")
+       public static class J07 {}
+       
+       @Test
+       public void j07_tags_ResourceSwagger_tags_localised() throws Exception {
+               
assertObjectEquals("[{name:'l-foo',description:'l-foo',externalDocs:{description:'l-foo',url:'l-foo'}}]",
 getSwagger(new J07()).getTags());
+               
assertObjectEquals("[{name:'l-foo',description:'l-foo',externalDocs:{description:'l-foo',url:'l-foo'}}]",
 getSwaggerWithFile(new J07()).getTags());
+       }
+
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /schemes
+       // "schemes": [
+       //      "http"
+       // ],
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class K01 {}
+       
+       @Test
+       public void k01_schemes_default() throws Exception {
+               assertEquals(null, getSwagger(new K01()).getSchemes());
+               assertObjectEquals("['s-scheme']", getSwaggerWithFile(new 
K01()).getSchemes());
+       }
+
+       
+       @RestResource(swagger=@ResourceSwagger("{schemes:['a-scheme']}"))
+       public static class K02 {}
+       
+       @Test
+       public void k02_schemes_ResourceSwagger_value() throws Exception {
+               assertObjectEquals("['a-scheme']", getSwagger(new 
K02()).getSchemes());
+               assertObjectEquals("['a-scheme']", getSwaggerWithFile(new 
K02()).getSchemes());
+       }
+       
+       
+       
//-----------------------------------------------------------------------------------------------------------------
+       // /externalDocs
+       // "externalDocs": {
+       //      "description": "Find out more about Swagger",
+       //      "url": "http://swagger.io";
+       // }
+       
//-----------------------------------------------------------------------------------------------------------------
+       
+       @RestResource()
+       public static class L01 {}
+       
+       @Test
+       public void l01_externalDocs_default() throws Exception {
+               assertEquals(null, getSwagger(new L01()).getExternalDocs());
+               assertObjectEquals("{description:'s-description',url:'s-url'}", 
getSwaggerWithFile(new L01()).getExternalDocs());
+       }
+
+
+       
@RestResource(swagger=@ResourceSwagger("{externalDocs:{description:'a-description',url:'a-url'}}"))
+       public static class L02 {}
+       
+       @Test
+       public void l02_externalDocs_ResourceSwagger_value() throws Exception {
+               assertObjectEquals("{description:'a-description',url:'a-url'}", 
getSwagger(new L02()).getExternalDocs());
+               assertObjectEquals("{description:'a-description',url:'a-url'}", 
getSwaggerWithFile(new L02()).getExternalDocs());
+       }
+
+       
+       
@RestResource(swagger=@ResourceSwagger(value="{externalDocs:{description:'a-description',url:'a-url'}}",
 externalDocs="{description:'b-description',url:'b-url'}"))
+       public static class L03 {}
+       
+       @Test
+       public void l03_externalDocs_ResourceSwagger_externalDocs() throws 
Exception {
+               assertObjectEquals("{description:'b-description',url:'b-url'}", 
getSwagger(new L03()).getExternalDocs());
+               assertObjectEquals("{description:'b-description',url:'b-url'}", 
getSwaggerWithFile(new L03()).getExternalDocs());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{info:{externalDocs:{description:'a-description',url:'a-url'}}}",
 externalDocs=" description:'b-description', url:'b-url' "))
+       public static class L04 {}
+       
+       @Test
+       public void l04_externalDocs_ResourceSwagger_externalDocs() throws 
Exception {
+               assertObjectEquals("{description:'b-description',url:'b-url'}", 
getSwagger(new L04()).getExternalDocs());
+               assertObjectEquals("{description:'b-description',url:'b-url'}", 
getSwaggerWithFile(new L04()).getExternalDocs());
+       }
+
+       
@RestResource(swagger=@ResourceSwagger(value="{externalDocs:{description:'a-description',url:'a-url'}}",
 externalDocs="{description:'$L{foo}',url:'$L{bar}'}"), 
messages="BasicRestInfoProviderTest")
+       public static class L05 {}
+       
+       @Test
+       public void l05_externalDocs_ResourceSwagger_externalDocs_localised() 
throws Exception {
+               assertObjectEquals("{description:'l-foo',url:'l-bar'}", 
getSwagger(new L05()).getExternalDocs());
+               assertObjectEquals("{description:'l-foo',url:'l-bar'}", 
getSwaggerWithFile(new L05()).getExternalDocs());
+       }
+       
 }
diff --git 
a/juneau-rest/juneau-rest-server/src/test/resources/org/apache/juneau/rest/BasicRestInfoProviderTest_swagger.json
 
b/juneau-rest/juneau-rest-server/src/test/resources/org/apache/juneau/rest/BasicRestInfoProviderTest_swagger.json
index 9e5fb8d..21d719c 100644
--- 
a/juneau-rest/juneau-rest-server/src/test/resources/org/apache/juneau/rest/BasicRestInfoProviderTest_swagger.json
+++ 
b/juneau-rest/juneau-rest-server/src/test/resources/org/apache/juneau/rest/BasicRestInfoProviderTest_swagger.json
@@ -12,7 +12,39 @@
 // 
***************************************************************************************************************************
 
 {
+       swagger: '0.0',
        info: {
-               title: 's-title'
+               title: 's-title',
+               description: 's-description',
+               version: '0.0.0',
+               termsOfService: 's-termsOfService',
+               contact: {
+                       name: 's-name',
+                       url: 's-url',
+                       email: 's-email'
+               },
+               license: {
+                       name: 's-name',
+                       url: 's-url'
+               }
+       },
+       host: 's-host',
+       basePath: 's-basePath',
+       tags: [
+               {
+                       name: 's-name',
+                       description: 's-description',
+                       externalDocs: {
+                               description: 's-description',
+                               url: 's-url'
+                       }
+               }
+       ],
+       schemes: [
+               's-scheme'
+       ],
+       externalDocs: {
+               description: 's-description',
+               url: 's-url'
        }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
jamesbog...@apache.org.

Reply via email to