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 <[email protected]>
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": "[email protected]"
+ // },
+
//-----------------------------------------------------------------------------------------------------------------
+
+ @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
[email protected].