Adding basic auth support to sdc sim
[integration/csit.git] / plans / so / integration-etsi-testing / so-simulators / sdc-simulator / src / test / java / org / onap / so / sdc / simulator / controller / CatalogControllerTest.java
  * SPDX-License-Identifier: Apache-2.0
  * ============LICENSE_END=========================================================
  */
-
-package org.onap.so.sdc.simulator;
+package org.onap.so.sdc.simulator.controller;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import java.util.Base64;
 import java.util.Optional;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 import org.onap.so.sdc.simulator.providers.ResourceProvider;
-import org.onap.so.sdc.simulator.utils.Constant;
+import org.onap.so.sdc.simulator.utils.Constants;
 import org.springframework.beans.factory.annotation.Autowired;
+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.boot.test.web.client.TestRestTemplate;
 import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 /**
  * @author Waqas Ikram (waqas.ikram@est.tech)
+ *
  */
 @RunWith(SpringJUnit4ClassRunner.class)
 @ActiveProfiles("test")
 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
 @Configuration
-public class SdcSimulatorControllerTest {
+public class CatalogControllerTest {
+
+    private static final String PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U";
 
     @LocalServerPort
     private int port;
@@ -55,42 +63,48 @@ public class SdcSimulatorControllerTest {
     @Autowired
     private TestRestTemplate restTemplate;
 
-    @Test
-    public void test_healthCheck_matchContent() {
-        final String url = getBaseUrl() + "/healthcheck";
-        final ResponseEntity<String> object = restTemplate.getForEntity(url, String.class);
-
-        assertEquals(Constant.HEALTHY, object.getBody());
-
-    }
+    @Value("${spring.security.username}")
+    private String username;
 
     @Test
     public void test_getCsar_validCsarId_matchContent() {
 
-        final String url = getBaseUrl() + "/resources/" + Constant.DEFAULT_CSAR_NAME + "/toscaModel";
+        final String url = getBaseUrl() + "/resources/" + Constants.DEFAULT_CSAR_NAME + "/toscaModel";
 
-        final ResponseEntity<byte[]> response = restTemplate.getForEntity(url, byte[].class);
+        final ResponseEntity<byte[]> response =
+                restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(getHttpHeaders()), byte[].class);
 
+        assertEquals(HttpStatus.OK, response.getStatusCode());
         assertTrue(response.hasBody());
         assertEquals(3982, response.getBody().length);
 
-        assertEquals(HttpStatus.OK, response.getStatusCode());
     }
 
     @Test
     public void test_getCsar_invalidCsar_internalServerError() {
         final ResourceProvider mockedResourceProvider = Mockito.mock(ResourceProvider.class);
         Mockito.when(mockedResourceProvider.getResource(Mockito.anyString())).thenReturn(Optional.empty());
-        final SdcSimulatorController objUnderTest = new SdcSimulatorController(mockedResourceProvider);
+        final CatalogController objUnderTest = new CatalogController(mockedResourceProvider);
 
-        final ResponseEntity<byte[]> response = objUnderTest.getCsar(Constant.DEFAULT_CSAR_NAME);
+        final ResponseEntity<byte[]> response = objUnderTest.getCsar(Constants.DEFAULT_CSAR_NAME);
 
         assertFalse(response.hasBody());
         assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, response.getStatusCode());
     }
 
     private String getBaseUrl() {
-        return "http://localhost:" + port + Constant.BASE_URL;
+        return "http://localhost:" + port + Constants.CATALOG_URL;
+    }
+
+    private HttpHeaders getHttpHeaders() {
+        final HttpHeaders requestHeaders = new HttpHeaders();
+        requestHeaders.add("Authorization", getBasicAuth(username));
+        requestHeaders.setContentType(MediaType.APPLICATION_JSON);
+        return requestHeaders;
+    }
+
+    private String getBasicAuth(final String username) {
+        return "Basic " + new String(Base64.getEncoder().encodeToString((username + ":" + PASSWORD).getBytes()));
     }
 
 }