X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Fclamp%2Fclds%2Fit%2FHttpsItCase.java;h=90a240181ea20bf246ad3f636f49ea0efd7e4c87;hb=d6f441375ba214ad849c370798a7fdc3d6ff5bc6;hp=9befc40b128ad90206850d5b485a9d40675f0d07;hpb=0332719940cc8110f8fec62dd46cce3bd88e56aa;p=clamp.git diff --git a/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java b/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java index 9befc40b..90a24018 100644 --- a/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java @@ -2,49 +2,50 @@ * ============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============================================ * =================================================================== - * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * */ 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; import javax.net.ssl.SSLContext; 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; -import org.onap.clamp.clds.AbstractItCase; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; @@ -55,11 +56,11 @@ import org.springframework.web.client.RestTemplate; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) @TestPropertySource(locations = "classpath:https/https-test.properties") -public class HttpsItCase extends AbstractItCase { +@DirtiesContext +public class HttpsItCase { @Value("${server.port}") private String httpsPort; - @Value("${server.http-to-https-redirection.port}") private String httpPort; @@ -68,7 +69,6 @@ public class HttpsItCase extends AbstractItCase { */ @BeforeClass public static void setUp() { - try { // setup ssl context to ignore certificate errors SSLContext ctx = SSLContext.getInstance("TLS"); @@ -94,7 +94,6 @@ public class HttpsItCase extends AbstractItCase { } catch (Exception ex) { ex.printStackTrace(); } - } @Test @@ -108,16 +107,32 @@ public class HttpsItCase extends AbstractItCase { } }); template.setRequestFactory(factory); - - ResponseEntity entity = template - .getForEntity("http://localhost:" + this.httpPort + "/designer/index.html", String.class); + ResponseEntity entity = template.getForEntity("http://localhost:" + this.httpPort + "/swagger.html", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND); - ResponseEntity httpsEntity = template - .getForEntity("https://localhost:" + this.httpsPort + "/designer/index.html", String.class); + .getForEntity("https://localhost:" + this.httpsPort + "/swagger.html", String.class); assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK); - assertThat(httpsEntity.getBody()).contains("CLDS"); + assertThat(httpsEntity.getBody()).contains("Clamp Rest API"); + } + @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 httpsEntity = template + .getForEntity("https://localhost:" + this.httpsPort + "/restservices/clds/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()); } /** @@ -141,5 +156,4 @@ public class HttpsItCase extends AbstractItCase { super.prepareConnection(connection, httpMethod); } } - }