X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=portal-BE%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fportal%2Fcontroller%2FWidgetsControllerTest.java;fp=portal-BE%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fportal%2Fcontroller%2FWidgetsControllerTest.java;h=a90b38ff041f64366db4ffdc9b5ebb6b14b65339;hb=bfb078b48e3558777b60a91775ea3c239a1f3a05;hp=0000000000000000000000000000000000000000;hpb=25ca3671cea82311d6832963fc189c8bbfab0d23;p=portal.git 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 new file mode 100644 index 00000000..a90b38ff --- /dev/null +++ b/portal-BE/src/test/java/org/onap/portal/controller/WidgetsControllerTest.java @@ -0,0 +1,189 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * Modifications Copyright (c) 2019 Samsung + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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.portal.controller; + +import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNull; +import static org.mockito.Mockito.when; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.junit.Test; +import org.junit.runner.RunWith; +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.dto.transport.OnboardingWidget; +import org.onap.portal.framework.MockitoTestSuite; +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; + +@RunWith(SpringRunner.class) +@SpringBootTest +@TestPropertySource(locations = "classpath:test.properties") +public class WidgetsControllerTest { + + private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo", + "demo123"); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest request = mockitoTestSuite.getMockedRequest(); + HttpServletResponse response = mockitoTestSuite.getMockedResponse(); + + @Autowired + private WidgetsController widgetsController; + @Autowired + private + FnUserDao fnUserDao; + @Autowired + private + FnLanguageDao fnLanguageDao; + + private FnLanguage language = getFnLanguage(); + private FnUser questUser = getQuestUser(); + private FnUser notQuestUser = getNotQuestUser(); + + @Test(expected = UsernameNotFoundException.class) + public void getOnboardingWidgetsNullUserTest() { + UsernamePasswordAuthenticationToken nullPrincipal = new UsernamePasswordAuthenticationToken("nulluser", + "demo123"); + widgetsController.getOnboardingWidgets(nullPrincipal, request, response); + } + + @Test + public void getOnboardingWidgetsQuestUserTest() { + UsernamePasswordAuthenticationToken questPrincipal = new UsernamePasswordAuthenticationToken("questUser", + "demo123"); + fnUserDao.save(questUser); + List onboardingWidgets = widgetsController + .getOnboardingWidgets(questPrincipal, request, response); + assertNull(onboardingWidgets); + + //Clean up + fnUserDao.delete(questUser); + fnLanguageDao.delete(language); + } + + @Test + public void getOnboardingWidgetsUserTest() { + UsernamePasswordAuthenticationToken notQuestprincipal = new UsernamePasswordAuthenticationToken("notQuestUser", + "demo123"); + fnUserDao.save(notQuestUser); + List expected = new ArrayList<>(); + when(request.getHeader("X-Widgets-Type")).thenReturn("managed"); + + List actual = widgetsController + .getOnboardingWidgets(notQuestprincipal, request, response); + + assertEquals(expected, actual); + fnUserDao.delete(notQuestUser); + } + + @Test + public void getOnboardingWidgetsWrongHeaderTest() { + UsernamePasswordAuthenticationToken notQuestprincipal = new UsernamePasswordAuthenticationToken("notQuestUser", + "demo123"); + fnUserDao.save(notQuestUser); + when(request.getHeader("X-Widgets-Type")).thenReturn("test"); + List actual = widgetsController + .getOnboardingWidgets(notQuestprincipal, request, response); + + assertNull(actual); + fnUserDao.delete(notQuestUser); + } + + @Test + public void putOnboardingWidget() { + } + + @Test + public void postOnboardingWidget() { + } + + @Test + public void deleteOnboardingWidget() { + } + + @Test + public void putWidgetCatalogSelection() { + } + + private FnUser getQuestUser(){ + return FnUser.builder() + .loginId("questUser") + .loginPwd("demo123") + .lastLoginDate(LocalDateTime.now()) + .activeYn(true) + .createdDate(LocalDateTime.now()) + .modifiedDate(LocalDateTime.now()) + .isInternalYn(true) + .languageId(language) + .guest(true) + .build(); + } + + private FnUser getNotQuestUser(){ + return FnUser.builder() + .loginId("notQuestUser") + .loginPwd("demo123") + .lastLoginDate(LocalDateTime.now()) + .activeYn(true) + .createdDate(LocalDateTime.now()) + .modifiedDate(LocalDateTime.now()) + .isInternalYn(true) + .languageId(language) + .guest(false) + .build(); + } + + private FnLanguage getFnLanguage(){ + return FnLanguage.builder().languageName("Polish").languageAlias("Pl").build(); + } +} \ No newline at end of file