Restore Swagger
[clamp.git] / src / test / java / org / onap / clamp / clds / it / HttpsItCase.java
index dc3a31f..0da267d 100644 (file)
@@ -2,31 +2,33 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); 
- * you may not use this file except in compliance with the License. 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software 
- * distributed under the License is distributed on an "AS IS" BASIS, 
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
- * See the License for the specific language governing permissions and 
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END============================================
  * ===================================================================
- * 
+ *
  */
 
 package org.onap.clamp.clds.it;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import java.io.File;
 import java.io.IOException;
 import java.net.HttpURLConnection;
+import java.nio.charset.Charset;
 
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.HttpsURLConnection;
@@ -35,6 +37,7 @@ import javax.net.ssl.SSLSession;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
+import org.apache.commons.io.FileUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -73,12 +76,12 @@ public class HttpsItCase {
 
                 @Override
                 public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
-                        throws java.security.cert.CertificateException {
+                    throws java.security.cert.CertificateException {
                 }
 
                 @Override
                 public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
-                        throws java.security.cert.CertificateException {
+                    throws java.security.cert.CertificateException {
                 }
 
                 @Override
@@ -87,7 +90,7 @@ public class HttpsItCase {
                 }
             };
             ctx.init(null, new TrustManager[] {
-                    tm
+                tm
             }, null);
             SSLContext.setDefault(ctx);
         } catch (Exception ex) {
@@ -107,14 +110,32 @@ public class HttpsItCase {
         });
         template.setRequestFactory(factory);
         ResponseEntity<String> entity = template
-                .getForEntity("http://localhost:" + this.httpPort + "/designer/index.html", String.class);
+            .getForEntity("http://localhost:" + this.httpPort + "/designer/index.html", String.class);
         assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
         ResponseEntity<String> httpsEntity = template
-                .getForEntity("https://localhost:" + this.httpsPort + "/designer/index.html", String.class);
+            .getForEntity("https://localhost:" + this.httpsPort + "/designer/index.html", String.class);
         assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
         assertThat(httpsEntity.getBody()).contains("CLDS");
     }
 
+    @Test
+    public void testSwaggerJson() throws Exception {
+        RestTemplate template = new RestTemplate();
+        final MySimpleClientHttpRequestFactory factory = new MySimpleClientHttpRequestFactory(new HostnameVerifier() {
+
+            @Override
+            public boolean verify(final String hostname, final SSLSession session) {
+                return true;
+            }
+        });
+        template.setRequestFactory(factory);
+        ResponseEntity<String> httpsEntity = template
+            .getForEntity("https://localhost:" + this.httpsPort + "/restservices/clds/v1/api-doc", String.class);
+        assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
+        assertThat(httpsEntity.getBody()).contains("swagger");
+        FileUtils.writeStringToFile(new File("docs/swagger/swagger.json"), httpsEntity.getBody(),Charset.defaultCharset());
+    }
+
     /**
      * Http Request Factory for ignoring SSL hostname errors. Not for production
      * use!
@@ -129,7 +150,7 @@ public class HttpsItCase {
 
         @Override
         protected void prepareConnection(final HttpURLConnection connection, final String httpMethod)
-                throws IOException {
+            throws IOException {
             if (connection instanceof HttpsURLConnection) {
                 ((HttpsURLConnection) connection).setHostnameVerifier(this.verifier);
             }