You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/04/21 18:12:17 UTC
[juneau] branch master updated: JUnits for BasicRestInfoProvider
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 <ja...@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": "apiteam@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
jamesbognar@apache.org.