summaryrefslogtreecommitdiffstats
path: root/components/datalake-handler/feeder
diff options
context:
space:
mode:
authorZhangZihao <zhangzihao@chinamobile.com>2019-06-14 17:06:43 +0800
committerZhangZihao <zhangzihao@chinamobile.com>2019-06-14 17:06:57 +0800
commite27282d7e99ca0ce282cee96135188e4a8371258 (patch)
treeeb515eb304c2a1343f57f34e17f5fd0350b1b703 /components/datalake-handler/feeder
parentf05d5c950e0c4f0ffcf52834ff4b3c03a9d02ce5 (diff)
Unit test 3
Change-Id: I63afd2b6c70fb2ce0a182fcb988a579f42c9b23d Issue-ID: DCAEGEN2-1468 Signed-off-by: ZhangZihao <zhangzihao@chinamobile.com>
Diffstat (limited to 'components/datalake-handler/feeder')
-rw-r--r--components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DesignTypeControllerTest.java79
-rw-r--r--components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalControllerTest.java121
-rw-r--r--components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalDesignControllerTest.java176
3 files changed, 376 insertions, 0 deletions
diff --git a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DesignTypeControllerTest.java b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DesignTypeControllerTest.java
new file mode 100644
index 00000000..ab9d901c
--- /dev/null
+++ b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DesignTypeControllerTest.java
@@ -0,0 +1,79 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : DATALAKE
+ * ================================================================================
+ * Copyright 2019 China Mobile
+ *=================================================================================
+ * 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
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.datalake.feeder.controller;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.datalake.feeder.domain.DesignType;
+import org.onap.datalake.feeder.domain.Portal;
+import org.onap.datalake.feeder.service.DesignTypeService;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+@RunWith(MockitoJUnitRunner.class)
+public class DesignTypeControllerTest {
+
+ @InjectMocks
+ private DesignTypeService designTypeService;
+
+ @Before
+ public void setupTest() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void getTemplateTypeName() throws NoSuchFieldException, IllegalAccessException {
+
+ DesignTypeController testDesignTypeController = new DesignTypeController();
+ setAccessPrivateFields(testDesignTypeController);
+ DesignType testDesignType = fillDomain();
+ List<String> designTypeNamesList = new ArrayList<>();
+ designTypeNamesList.add(testDesignType.getName());
+ assertEquals(1, testDesignTypeController.getTemplateTypeName().size());
+ }
+
+ public void setAccessPrivateFields(DesignTypeController designTypeController) throws NoSuchFieldException, IllegalAccessException {
+
+ Field testDesignTypeService = designTypeController.getClass().getDeclaredField("designTypeService");
+ testDesignTypeService.setAccessible(true);
+ testDesignTypeService.set(designTypeController, designTypeService);
+ }
+
+
+ public DesignType fillDomain(){
+ DesignType designType = new DesignType();
+ designType.setName("Kibana Dashboard");
+ Portal portal = new Portal();
+ portal.setName("Kibana");
+ portal.setHost("127.0.0.1");
+ portal.setPort(5601);
+ designType.setPortal(portal);
+ return designType;
+ }
+} \ No newline at end of file
diff --git a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalControllerTest.java b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalControllerTest.java
new file mode 100644
index 00000000..21327f94
--- /dev/null
+++ b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalControllerTest.java
@@ -0,0 +1,121 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : DATALAKE
+ * ================================================================================
+ * Copyright 2019 China Mobile
+ *=================================================================================
+ * 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
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.datalake.feeder.controller;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.datalake.feeder.controller.domain.PostReturnBody;
+import org.onap.datalake.feeder.domain.Db;
+import org.onap.datalake.feeder.domain.Portal;
+import org.onap.datalake.feeder.dto.PortalConfig;
+import org.onap.datalake.feeder.repository.PortalRepository;
+import org.onap.datalake.feeder.service.PortalService;
+import org.springframework.validation.BindingResult;
+
+import javax.servlet.http.HttpServletResponse;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class PortalControllerTest {
+
+ @Mock
+ private HttpServletResponse httpServletResponse;
+
+ @Mock
+ private BindingResult mockBindingResult;
+
+ @Mock
+ private PortalRepository portalRepository;
+
+ @InjectMocks
+ private PortalService portalService;
+
+ @Before
+ public void setupTest() {
+ MockitoAnnotations.initMocks(this);
+ when(mockBindingResult.hasErrors()).thenReturn(false);
+ }
+
+
+ @Test
+ public void testUpdatePortal() throws NoSuchFieldException, IllegalAccessException, IOException {
+
+ PortalController testPortalController = new PortalController();
+ setAccessPrivateFields(testPortalController);
+ Portal testPortal = fillDomain();
+ when(portalRepository.findById("Kibana")).thenReturn(Optional.of(testPortal));
+ PostReturnBody<PortalConfig> postPortal = testPortalController.updatePortal(testPortal.getPortalConfig(), mockBindingResult, httpServletResponse);
+ assertEquals(postPortal.getStatusCode(), 200);
+ //when(mockBindingResult.hasErrors()).thenReturn(true);
+
+ }
+
+
+ @Test
+ public void testGetPortals() throws NoSuchFieldException, IllegalAccessException {
+
+ PortalController testPortalController = new PortalController();
+ setAccessPrivateFields(testPortalController);
+ Portal testPortal = fillDomain();
+ List<Portal> portalList = new ArrayList<>();
+ portalList.add(testPortal);
+ when(portalRepository.findAll()).thenReturn(portalList);
+ assertEquals(1, testPortalController.getPortals().size());
+
+ }
+
+
+ public void setAccessPrivateFields(PortalController portalController) throws NoSuchFieldException, IllegalAccessException {
+
+ Field testPortalService = portalController.getClass().getDeclaredField("portalService");
+ testPortalService.setAccessible(true);
+ testPortalService.set(portalController, portalService);
+ Field testPortalRepository = portalController.getClass().getDeclaredField("portalRepository");
+ testPortalRepository.setAccessible(true);
+ testPortalRepository.set(portalController, portalRepository);
+ }
+
+
+ public Portal fillDomain(){
+ Portal portal = new Portal();
+ portal.setName("Kibana");
+ portal.setEnabled(true);
+ portal.setHost("127.0.0.1");
+ portal.setPort(5601);
+ portal.setLogin("admin");
+ portal.setPass("password");
+ portal.setDb(new Db("Elasticsearch"));
+ return portal;
+ }
+} \ No newline at end of file
diff --git a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalDesignControllerTest.java b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalDesignControllerTest.java
new file mode 100644
index 00000000..ac9a17a8
--- /dev/null
+++ b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/PortalDesignControllerTest.java
@@ -0,0 +1,176 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : DATALAKE
+ * ================================================================================
+ * Copyright 2019 China Mobile
+ *=================================================================================
+ * 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
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.datalake.feeder.controller;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.datalake.feeder.config.ApplicationConfiguration;
+import org.onap.datalake.feeder.controller.domain.PostReturnBody;
+import org.onap.datalake.feeder.domain.DesignType;
+import org.onap.datalake.feeder.domain.Portal;
+import org.onap.datalake.feeder.domain.PortalDesign;
+import org.onap.datalake.feeder.domain.Topic;
+import org.onap.datalake.feeder.dto.PortalDesignConfig;
+import org.onap.datalake.feeder.repository.DesignTypeRepository;
+import org.onap.datalake.feeder.repository.PortalDesignRepository;
+import org.onap.datalake.feeder.service.PortalDesignService;
+import org.onap.datalake.feeder.service.TopicService;
+import org.springframework.validation.BindingResult;
+
+import javax.servlet.http.HttpServletResponse;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class PortalDesignControllerTest {
+
+ @Mock
+ private HttpServletResponse httpServletResponse;
+
+ @Mock
+ private BindingResult mockBindingResult;
+
+ @Mock
+ private ApplicationConfiguration applicationConfiguration;
+
+ @Mock
+ private PortalDesignRepository portalDesignRepository;
+
+ @Mock
+ private TopicService topicService;
+
+ @Mock
+ private DesignTypeRepository designTypeRepository;
+
+ @InjectMocks
+ private PortalDesignService portalDesignService;
+
+
+ @Before
+ public void setupTest() {
+ MockitoAnnotations.initMocks(this);
+ when(mockBindingResult.hasErrors()).thenReturn(false);
+ }
+
+ @Test
+ public void testCreatePortalDesign() throws NoSuchFieldException, IllegalAccessException, IOException {
+
+ PortalDesignController testPortalDesignController = new PortalDesignController();
+ setAccessPrivateFields(testPortalDesignController);
+ PortalDesign testPortalDesign = fillDomain();
+ when(topicService.getTopic("unauthenticated.SEC_FAULT_OUTPUT")).thenReturn(new Topic("unauthenticated.SEC_FAULT_OUTPUT"));
+ when(designTypeRepository.findById("Kibana Dashboard")).thenReturn(Optional.of(testPortalDesign.getDesignType()));
+ PostReturnBody<PortalDesignConfig> postPortal = testPortalDesignController.createPortalDesign(testPortalDesign.getPortalDesignConfig(), mockBindingResult, httpServletResponse);
+ assertEquals(postPortal.getStatusCode(), 200);
+ }
+
+ @Test
+ public void testUpdatePortalDesign() throws NoSuchFieldException, IllegalAccessException, IOException {
+
+ PortalDesignController testPortalDesignController = new PortalDesignController();
+ setAccessPrivateFields(testPortalDesignController);
+ PortalDesign testPortalDesign = fillDomain();
+ Integer id = 1;
+ when(portalDesignRepository.findById(id)).thenReturn((Optional.of(testPortalDesign)));
+ when(topicService.getTopic("unauthenticated.SEC_FAULT_OUTPUT")).thenReturn(new Topic("unauthenticated.SEC_FAULT_OUTPUT"));
+ when(designTypeRepository.findById("Kibana Dashboard")).thenReturn(Optional.of(testPortalDesign.getDesignType()));
+ PostReturnBody<PortalDesignConfig> postPortal = testPortalDesignController.updatePortalDesign(testPortalDesign.getPortalDesignConfig(), mockBindingResult, id, httpServletResponse);
+ assertEquals(postPortal.getStatusCode(), 200);
+ }
+
+ @Test
+ public void testDeletePortalDesign() throws NoSuchFieldException, IllegalAccessException, IOException {
+
+ PortalDesignController testPortalDesignController = new PortalDesignController();
+ setAccessPrivateFields(testPortalDesignController);
+ PortalDesign testPortalDesign = fillDomain();
+ Integer id = 1;
+ testPortalDesign.setId(1);
+ when(portalDesignRepository.findById(id)).thenReturn((Optional.of(testPortalDesign)));
+ testPortalDesignController.deletePortalDesign(id, httpServletResponse);
+ }
+
+ @Test
+ public void testQueryAllPortalDesign() throws NoSuchFieldException, IllegalAccessException {
+
+ PortalDesignController testPortalDesignController = new PortalDesignController();
+ setAccessPrivateFields(testPortalDesignController);
+ PortalDesign testPortalDesign = fillDomain();
+ List<PortalDesign> portalDesignList = new ArrayList<>();
+ portalDesignList.add(testPortalDesign);
+ when(portalDesignRepository.findAll()).thenReturn(portalDesignList);
+ assertEquals(1, testPortalDesignController.queryAllPortalDesign().size());
+ }
+
+ @Test
+ public void testDeployPortalDesign() throws NoSuchFieldException, IllegalAccessException, IOException {
+
+ PortalDesignController testPortalDesignController = new PortalDesignController();
+ setAccessPrivateFields(testPortalDesignController);
+ PortalDesign testPortalDesign = fillDomain();
+ Integer id = 1;
+ testPortalDesign.setId(1);
+ when(portalDesignRepository.findById(id)).thenReturn((Optional.of(testPortalDesign)));
+ when(applicationConfiguration.getKibanaDashboardImportApi()).thenReturn("/api/kibana/dashboards/import?exclude=index-pattern");
+ testPortalDesignController.deployPortalDesign(id, httpServletResponse);
+ }
+
+ public void setAccessPrivateFields(PortalDesignController portalDesignController) throws NoSuchFieldException, IllegalAccessException {
+
+ Field testPortalDesignService = portalDesignController.getClass().getDeclaredField("portalDesignService");
+ testPortalDesignService.setAccessible(true);
+ testPortalDesignService.set(portalDesignController, portalDesignService);
+ Field testPortalDesignRepository = portalDesignController.getClass().getDeclaredField("portalDesignRepository");
+ testPortalDesignRepository.setAccessible(true);
+ testPortalDesignRepository.set(portalDesignController, portalDesignRepository);
+ }
+
+
+ public PortalDesign fillDomain(){
+ PortalDesign portalDesign = new PortalDesign();
+ portalDesign.setName("Kibana");
+ portalDesign.setBody("jsonString");
+ portalDesign.setSubmitted(false);
+ portalDesign.setNote("test");
+ DesignType designType = new DesignType();
+ designType.setName("Kibana Dashboard");
+ Portal portal = new Portal();
+ portal.setName("Kibana");
+ portal.setHost("127.0.0.1");
+ portal.setPort(5601);
+ designType.setPortal(portal);
+ portalDesign.setDesignType(designType);
+ portalDesign.setTopic(new Topic("unauthenticated.SEC_FAULT_OUTPUT"));
+ return portalDesign;
+ }
+} \ No newline at end of file