aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src/test/java/com/juick/server
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-09-12 15:29:37 +0300
committerGravatar Vitaly Takmazov2018-09-12 15:29:37 +0300
commitddf8c3c0f07c0ca2fa6444c4511b61fc9a5c496c (patch)
tree486cc99823acb4159a3fd29bbc566dd69d3bdace /juick-server/src/test/java/com/juick/server
parente97801561c497021a03317090b82d3c2568b1da7 (diff)
static swagger docs
Diffstat (limited to 'juick-server/src/test/java/com/juick/server')
-rw-r--r--juick-server/src/test/java/com/juick/server/configuration/SwaggerConfiguration.java28
-rw-r--r--juick-server/src/test/java/com/juick/server/tests/ServerTests.java12
2 files changed, 40 insertions, 0 deletions
diff --git a/juick-server/src/test/java/com/juick/server/configuration/SwaggerConfiguration.java b/juick-server/src/test/java/com/juick/server/configuration/SwaggerConfiguration.java
new file mode 100644
index 00000000..7c03f393
--- /dev/null
+++ b/juick-server/src/test/java/com/juick/server/configuration/SwaggerConfiguration.java
@@ -0,0 +1,28 @@
+package com.juick.server.configuration;
+
+import com.google.common.base.Predicates;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.Collections;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfiguration {
+ @Bean
+ public Docket api() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .host("api.juick.com")
+ .select()
+ .apis(Predicates.not(Predicates.or(RequestHandlerSelectors.basePackage("org.springframework.boot"), RequestHandlerSelectors.basePackage("com.juick.server.www"))))
+ .paths(PathSelectors.any()).build().apiInfo(new ApiInfo("Juick API", "Juick REST API Documentation",
+ "2.0", "https://juick.com/help/tos", null,
+ "AGPLv3", "https://www.gnu.org/licenses/agpl-3.0.html", Collections.emptyList()));
+ }
+}
diff --git a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
index 66845cfa..13cb8d41 100644
--- a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
+++ b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
@@ -1651,4 +1651,16 @@ public class ServerTests {
String sql = String.format("SELECT * FROM table WHERE data='%s'", Utils.encodeSphinx("';-- DROP TABLE table"));
assertThat(sql, is("SELECT * FROM table WHERE data='\\';-- DROP TABLE table\'"));
}
+ @Test
+ public void swaggerOutput() throws Exception {
+ MvcResult result = mockMvc.perform(get("/v2/api-docs")
+ .accept(MediaType.APPLICATION_JSON_UTF8))
+ .andExpect(status().isOk())
+ .andReturn();
+ String outputDir = System.getProperty("io.springfox.staticdocs.outputDir");
+ Files.createDirectories(Paths.get(outputDir));
+ BufferedWriter writer = Files.newBufferedWriter(Paths.get(outputDir, "swagger.json"), StandardCharsets.UTF_8);
+ writer.write(result.getResponse().getContentAsString());
+ writer.flush();
+ }
}