From 26abc89a7ce21999cccd88b77cd2ecda21cbe905 Mon Sep 17 00:00:00 2001 From: Dominik Mizyn Date: Fri, 4 Oct 2019 12:24:14 +0200 Subject: Tests coverage up and some minor bug fixes Tests coverage up and some minor bug fixes Issue-ID: PORTAL-710 Change-Id: I1abb5025f8cc91738c976bd6a49113776d9b4617 Signed-off-by: Dominik Mizyn --- .../controller/WidgetsCatalogControllerTest.java | 77 ++++++++++++-- .../portal/controller/WidgetsControllerTest.java | 116 ++++++++++++++++++++- .../ep/EpWidgetCatalogParameterServiceTest.java | 64 +++++++++--- 3 files changed, 233 insertions(+), 24 deletions(-) (limited to 'portal-BE/src/test/java/org/onap') diff --git a/portal-BE/src/test/java/org/onap/portal/controller/WidgetsCatalogControllerTest.java b/portal-BE/src/test/java/org/onap/portal/controller/WidgetsCatalogControllerTest.java index c04f50e4..b82ac2f7 100644 --- a/portal-BE/src/test/java/org/onap/portal/controller/WidgetsCatalogControllerTest.java +++ b/portal-BE/src/test/java/org/onap/portal/controller/WidgetsCatalogControllerTest.java @@ -49,6 +49,7 @@ import java.time.LocalDateTime; import java.util.Collections; import java.util.HashSet; import java.util.List; +import javax.servlet.http.HttpServletRequest; import javax.transaction.Transactional; import org.junit.Test; import org.junit.runner.RunWith; @@ -58,6 +59,7 @@ import org.onap.portal.domain.db.ep.EpWidgetCatalogParameter; import org.onap.portal.domain.db.fn.FnLanguage; import org.onap.portal.domain.db.fn.FnUser; import org.onap.portal.domain.dto.ecomp.WidgetCatalog; +import org.onap.portal.framework.MockitoTestSuite; import org.onap.portal.service.ep.EpMicroserviceParameterService; import org.onap.portal.service.ep.EpWidgetCatalogParameterService; import org.onap.portal.service.ep.EpWidgetCatalogService; @@ -70,20 +72,21 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest +@Transactional @TestPropertySource(locations = "classpath:test.properties") public class WidgetsCatalogControllerTest { private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo", "demo123"); @Autowired - WidgetsCatalogController widgetsCatalogController; + private WidgetsCatalogController widgetsCatalogController; @Autowired - FnLanguageService fnLanguageService; + private FnLanguageService fnLanguageService; @Autowired - EpWidgetCatalogParameterService epWidgetCatalogParameterService; + private EpWidgetCatalogParameterService epWidgetCatalogParameterService; @Autowired - EpMicroserviceParameterService epMicroserviceParameterService; + private EpMicroserviceParameterService epMicroserviceParameterService; @Autowired - EpWidgetCatalogService epWidgetCatalogService; + private EpWidgetCatalogService epWidgetCatalogService; @Test public void getUserWidgetCatalog() { @@ -128,7 +131,6 @@ public class WidgetsCatalogControllerTest { } @Test - @Transactional public void getUserParameterById() { //Given EpWidgetCatalog widget = EpWidgetCatalog.builder() @@ -155,7 +157,6 @@ public class WidgetsCatalogControllerTest { } @Test - @Transactional public void deleteUserParameterById() { //Given EpWidgetCatalog widget = EpWidgetCatalog.builder() @@ -189,10 +190,72 @@ public class WidgetsCatalogControllerTest { @Test public void saveWidgetParameter() { + //Given + EpWidgetCatalog widget = EpWidgetCatalog.builder() + .wdgName("Name") + .wdgFileLoc("loc") + .allUserFlag(true) + .build(); + epWidgetCatalogService.save(widget); + EpMicroserviceParameter parameter = new EpMicroserviceParameter(); + epMicroserviceParameterService.save(parameter); + FnLanguage language = FnLanguage.builder().languageAlias("TS").languageName("TEST").build(); + fnLanguageService.save(principal, language); + FnUser user = buildFnUser(); + language.setFnUsers(new HashSet<>(Collections.singleton(user))); + user.setLanguageId(language); + EpWidgetCatalogParameter data = EpWidgetCatalogParameter.builder() + .widgetId(widget).userId(user).paramId(parameter).userValue("TestData").build(); + + //When + widgetsCatalogController.saveWidgetParameter(principal, data); + //Then + EpWidgetCatalogParameter actual = epWidgetCatalogParameterService.getById(data.getId()); + + assertEquals("TestData", actual.getUserValue()); + + } + + @Test + public void saveWidgetParameterOldParamTest() { + //Given + EpWidgetCatalog widget = EpWidgetCatalog.builder() + .wdgName("Name") + .wdgFileLoc("loc") + .allUserFlag(true) + .build(); + epWidgetCatalogService.save(widget); + EpMicroserviceParameter parameter = new EpMicroserviceParameter(); + epMicroserviceParameterService.save(parameter); + FnLanguage language = FnLanguage.builder().languageAlias("TS").languageName("TEST").build(); + fnLanguageService.save(principal, language); + FnUser user = buildFnUser(); + language.setFnUsers(new HashSet<>(Collections.singleton(user))); + user.setLanguageId(language); + EpWidgetCatalogParameter old = EpWidgetCatalogParameter.builder() + .widgetId(widget).userId(user).paramId(parameter).userValue("TestData").build(); + + //When + widgetsCatalogController.saveWidgetParameter(principal, old); + + EpWidgetCatalogParameter newWidgetParameter = EpWidgetCatalogParameter.builder() + .widgetId(widget).userId(user).paramId(parameter).userValue("TestData2").build(); + + widgetsCatalogController.saveWidgetParameter(principal, newWidgetParameter); + + EpWidgetCatalogParameter oldOne = epWidgetCatalogParameterService.getById(old.getId()); + + //Then + assertEquals("TestData2", oldOne.getUserValue()); + } @Test public void getUploadFlag() { + String expected = ""; + String actual = widgetsCatalogController.getUploadFlag(); + + assertEquals(expected, actual); } private FnUser buildFnUser(){ diff --git a/portal-BE/src/test/java/org/onap/portal/controller/WidgetsControllerTest.java b/portal-BE/src/test/java/org/onap/portal/controller/WidgetsControllerTest.java index a90b38ff..0f277471 100644 --- a/portal-BE/src/test/java/org/onap/portal/controller/WidgetsControllerTest.java +++ b/portal-BE/src/test/java/org/onap/portal/controller/WidgetsControllerTest.java @@ -55,18 +55,23 @@ import org.onap.portal.dao.fn.FnLanguageDao; import org.onap.portal.dao.fn.FnUserDao; import org.onap.portal.domain.db.fn.FnLanguage; import org.onap.portal.domain.db.fn.FnUser; +import org.onap.portal.domain.db.fn.FnWidget; +import org.onap.portal.domain.dto.transport.FieldsValidator; import org.onap.portal.domain.dto.transport.OnboardingWidget; import org.onap.portal.framework.MockitoTestSuite; +import org.onap.portal.service.WidgetService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; @RunWith(SpringRunner.class) @SpringBootTest @TestPropertySource(locations = "classpath:test.properties") +@Transactional public class WidgetsControllerTest { private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo", @@ -80,11 +85,11 @@ public class WidgetsControllerTest { @Autowired private WidgetsController widgetsController; @Autowired - private - FnUserDao fnUserDao; + private FnUserDao fnUserDao; @Autowired - private - FnLanguageDao fnLanguageDao; + private FnLanguageDao fnLanguageDao; + @Autowired + private WidgetService widgetService; private FnLanguage language = getFnLanguage(); private FnUser questUser = getQuestUser(); @@ -140,7 +145,108 @@ public class WidgetsControllerTest { } @Test - public void putOnboardingWidget() { + public void putOnboardingWidgetSameWidget() { + //Given + UsernamePasswordAuthenticationToken notQuestprincipal = new UsernamePasswordAuthenticationToken("cs0008", + "demo123"); + fnUserDao.save(notQuestUser); + when(request.getHeader("X-Widgets-Type")).thenReturn("managed"); + + OnboardingWidget onboardingWidget = OnboardingWidget.builder() + .id(123L) + .name("Application") + .appId(1421L) + .appName("Application name") + .width(123) + .height(45) + .url("testurl") + .build(); + + + FnWidget fnWidget = FnWidget.builder() + .name("Application") + .appId(453L) + .width(123) + .height(45) + .url("testurl") + .build(); + + widgetService.saveOne(fnWidget); + + FieldsValidator expected = new FieldsValidator(); + //When + FieldsValidator actual = widgetsController.putOnboardingWidget(principal, fnWidget.getWidgetId(), onboardingWidget, response); + //Then + assertEquals(expected.getErrorCode(), actual.getErrorCode()); + assertEquals(expected.getHttpStatusCode(), actual.getHttpStatusCode()); + assertEquals(expected.getFields(), actual.getFields()); + } + + @Test + public void putOnboardingWidgetAOP() { + //Given + UsernamePasswordAuthenticationToken notQuestprincipal = new UsernamePasswordAuthenticationToken("cs0008", + "demo123"); + fnUserDao.save(notQuestUser); + when(request.getHeader("X-Widgets-Type")).thenReturn("managed"); + + OnboardingWidget onboardingWidget = OnboardingWidget.builder() + .id(123L) + .name("") + .appId(1L) + .appName("") + .width(123) + .height(45) + .url("testurl") + .build(); + + + FnWidget fnWidget = FnWidget.builder() + .name("Application") + .appId(1421L) + .width(123) + .height(45) + .url("testurl") + .build(); + + widgetService.saveOne(fnWidget); + + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(406L); + expected.addProblematicFieldName("appName can't be blank, appId value must be higher than 1"); + //When + FieldsValidator actual = widgetsController.putOnboardingWidget(principal, fnWidget.getWidgetId(), onboardingWidget, response); + //Then + assertEquals(expected.getHttpStatusCode(), actual.getHttpStatusCode()); + assertEquals(expected.getFields().size(), actual.getFields().size()); + } + + @Test + public void putOnboardingWidgetAOPXSSTest() { + //Given + UsernamePasswordAuthenticationToken notQuestprincipal = new UsernamePasswordAuthenticationToken("cs0008", + "demo123"); + fnUserDao.save(notQuestUser); + when(request.getHeader("X-Widgets-Type")).thenReturn("managed"); + + OnboardingWidget onboardingWidget = OnboardingWidget.builder() + .id(123L) + .name("\n") + .appId(34L) + .appName("") + .width(123) + .height(45) + .url("testurl") + .build(); + + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(406L); + expected.addProblematicFieldName("appName may have unsafe html content, name may have unsafe html content"); + //When + FieldsValidator actual = widgetsController.putOnboardingWidget(principal, 15L, onboardingWidget, response); + //Then + assertEquals(expected.getHttpStatusCode(), actual.getHttpStatusCode()); + assertEquals(expected.getFields().size(), actual.getFields().size()); } @Test diff --git a/portal-BE/src/test/java/org/onap/portal/service/ep/EpWidgetCatalogParameterServiceTest.java b/portal-BE/src/test/java/org/onap/portal/service/ep/EpWidgetCatalogParameterServiceTest.java index f123f95a..6a6c06b9 100644 --- a/portal-BE/src/test/java/org/onap/portal/service/ep/EpWidgetCatalogParameterServiceTest.java +++ b/portal-BE/src/test/java/org/onap/portal/service/ep/EpWidgetCatalogParameterServiceTest.java @@ -40,7 +40,7 @@ package org.onap.portal.service.ep; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.time.LocalDateTime; import java.util.Collections; @@ -63,29 +63,38 @@ import org.springframework.transaction.annotation.Transactional; @RunWith(SpringRunner.class) @SpringBootTest +@Transactional @TestPropertySource(locations = "classpath:test.properties") class EpWidgetCatalogParameterServiceTest { + private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo", "demo123"); - @Autowired + private EpWidgetCatalogParameterService epWidgetCatalogParameterService; - @Autowired private WidgetsCatalogController widgetsCatalogController; - @Autowired - private - FnLanguageService fnLanguageService; - @Autowired + private FnLanguageService fnLanguageService; private EpMicroserviceParameterService epMicroserviceParameterService; + private EpWidgetCatalogService epWidgetCatalogService; + @Autowired - private - EpWidgetCatalogService epWidgetCatalogService; + public EpWidgetCatalogParameterServiceTest( + EpWidgetCatalogParameterService epWidgetCatalogParameterService, + WidgetsCatalogController widgetsCatalogController, + FnLanguageService fnLanguageService, + EpMicroserviceParameterService epMicroserviceParameterService, + EpWidgetCatalogService epWidgetCatalogService) { + this.epWidgetCatalogParameterService = epWidgetCatalogParameterService; + this.widgetsCatalogController = widgetsCatalogController; + this.fnLanguageService = fnLanguageService; + this.epMicroserviceParameterService = epMicroserviceParameterService; + this.epWidgetCatalogService = epWidgetCatalogService; + } @Test void deleteUserParameterById() { } @Test - @Transactional void deleteByParamId() { //Given EpWidgetCatalog widget = EpWidgetCatalog.builder() @@ -101,7 +110,7 @@ class EpWidgetCatalogParameterServiceTest { FnUser user = buildFnUser(); language.setFnUsers(new HashSet<>(Collections.singleton(user))); user.setLanguageId(language); - EpWidgetCatalogParameter data = EpWidgetCatalogParameter.builder() + EpWidgetCatalogParameter data = EpWidgetCatalogParameter.builder() .widgetId(widget).userId(user).paramId(parameter).userValue("TestData").build(); //When assertEquals(0, widgetsCatalogController.getUserParameterById(parameter.getId()).size()); @@ -112,10 +121,41 @@ class EpWidgetCatalogParameterServiceTest { assertEquals(0, epWidgetCatalogParameterService.getUserParameterById(parameter.getId()).size()); //Clean + } + + @Test + void getUserParamById() { + //Given + EpWidgetCatalog widget = EpWidgetCatalog.builder() + .wdgName("Name") + .wdgFileLoc("loc") + .allUserFlag(true) + .build(); + epWidgetCatalogService.save(widget); + EpMicroserviceParameter parameter = new EpMicroserviceParameter(); + epMicroserviceParameterService.save(parameter); + FnLanguage language = FnLanguage.builder().languageAlias("TS").languageName("TEST").build(); + fnLanguageService.save(principal, language); + FnUser user = buildFnUser(); + language.setFnUsers(new HashSet<>(Collections.singleton(user))); + user.setLanguageId(language); + EpWidgetCatalogParameter data = EpWidgetCatalogParameter.builder() + .widgetId(widget).userId(user).paramId(parameter).userValue("TestData").build(); + //When + assertEquals(0, widgetsCatalogController.getUserParameterById(parameter.getId()).size()); + epWidgetCatalogParameterService.saveUserParameter(data); + Long id = data.getId(); + assertEquals(1, epWidgetCatalogParameterService.getUserParameterById(parameter.getId()).size()); + EpWidgetCatalogParameter actual = epWidgetCatalogParameterService.getUserParamById(widget.getWidgetId(), user.getUserId(), parameter.getId()); + //Then + assertEquals(id, actual.getId()); + assertEquals(data.getUserValue(), actual.getUserValue()); + assertEquals(data.getWidgetId().getWidgetId(), actual.getWidgetId().getWidgetId()); + assertEquals(data.getParamId().getId(), actual.getParamId().getId()); } - private FnUser buildFnUser(){ + private FnUser buildFnUser() { return FnUser.builder() .lastLoginDate(LocalDateTime.now()) .activeYn(true) -- cgit 1.2.3-korg