Tests Coverage up
[portal.git] / portal-BE / src / test / java / org / onap / portal / controller / LanguageControllerTest.java
1 /*
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  * Modifications Copyright (c) 2019 Samsung
8  * ===================================================================
9  *
10  * Unless otherwise specified, all software contained herein is licensed
11  * under the Apache License, Version 2.0 (the "License");
12  * you may not use this software except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  *             http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  *
23  * Unless otherwise specified, all documentation contained herein is licensed
24  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
25  * you may not use this documentation except in compliance with the License.
26  * You may obtain a copy of the License at
27  *
28  *             https://creativecommons.org/licenses/by/4.0/
29  *
30  * Unless required by applicable law or agreed to in writing, documentation
31  * distributed under the License is distributed on an "AS IS" BASIS,
32  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33  * See the License for the specific language governing permissions and
34  * limitations under the License.
35  *
36  * ============LICENSE_END============================================
37  *
38  *
39  */
40
41 package org.onap.portal.controller;
42
43 import static org.junit.jupiter.api.Assertions.assertEquals;
44 import static org.junit.jupiter.api.Assertions.assertNull;
45
46 import org.junit.jupiter.api.Test;
47 import org.junit.runner.RunWith;
48 import org.onap.portal.dao.fn.FnLanguageDao;
49 import org.onap.portal.domain.db.fn.FnLanguage;
50 import org.onap.portal.domain.db.fn.FnUser;
51 import org.onap.portal.domain.dto.PortalRestResponse;
52 import org.onap.portal.domain.dto.PortalRestStatusEnum;
53 import org.onap.portal.domain.dto.fn.FnLanguageDto;
54 import org.onap.portal.service.fn.FnUserService;
55 import org.springframework.beans.factory.annotation.Autowired;
56 import org.springframework.boot.test.context.SpringBootTest;
57 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
58 import org.springframework.test.context.TestPropertySource;
59 import org.springframework.test.context.junit4.SpringRunner;
60 import org.springframework.transaction.annotation.Transactional;
61
62 @RunWith(SpringRunner.class)
63 @SpringBootTest
64 @TestPropertySource(locations="classpath:test.properties")
65 @Transactional
66 class LanguageControllerTest {
67        private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo", "XZa6pS1vC0qKXWtn9wcZWdLx61L0=");
68
69        @Autowired
70        private LanguageController languageController;
71        @Autowired
72        private FnLanguageDao fnLanguageDao;
73        @Autowired
74        private FnUserService fnUserService;
75
76        @Test
77        void saveLanguage() {
78               //Given
79               FnLanguage fnLanguage = new FnLanguage();
80               fnLanguage.setLanguageName("Polish");
81               fnLanguage.setLanguageAlias("PL");
82               //When
83               PortalRestResponse<String> expected = new PortalRestResponse<>();
84               expected.setMessage("SUCCESS");
85               expected.setResponse("FnLanguage{languageId=1000, languageName='Polish', languageAlias='PL'}");
86               expected.setStatus(PortalRestStatusEnum.OK);
87               PortalRestResponse<String> actual = languageController.saveLanguage(principal, fnLanguage);
88               //Then
89               assertEquals(expected.getMessage(), actual.getMessage());
90               assertEquals(expected.getStatus(), actual.getStatus());
91               //Clean up
92               fnLanguageDao.delete(fnLanguage);
93        }
94
95        @Test
96        void saveLanguageXSS() {
97               //Given
98               FnLanguage fnLanguage = new FnLanguage();
99               fnLanguage.setLanguageName("<script>alert(“XSS”)</script> ");
100               fnLanguage.setLanguageAlias("PL");
101               //When
102               PortalRestResponse<String> expected = new PortalRestResponse<>();
103               expected.setMessage("FAILURE");
104               expected.setResponse("FnLanguage is not valid, may have unsafe html content");
105               expected.setStatus(PortalRestStatusEnum.ERROR);
106               PortalRestResponse<String> actual =  languageController.saveLanguage(principal, fnLanguage);
107               //Then
108
109               assertEquals(expected.getMessage(), actual.getMessage());
110               assertEquals(expected.getStatus(), actual.getStatus());
111               //Clean up
112               fnLanguageDao.delete(fnLanguage);
113        }
114
115        @Test
116        void getLanguageListTest(){
117               assertEquals(languageController.getLanguageList(principal).size(), 2);
118        }
119
120        @Test
121        void setUpUserLanguage(){
122               //Given
123               FnLanguage fnLanguage = new FnLanguage();
124               fnLanguage.setLanguageName("Polish");
125               fnLanguage.setLanguageAlias("PL");
126
127               PortalRestResponse<String> expected = new PortalRestResponse<>();
128               expected.setMessage("SUCCESS");
129               expected.setStatus(PortalRestStatusEnum.OK);
130
131               languageController.saveLanguage(principal, fnLanguage);
132               PortalRestResponse<String> actual = languageController.setUpUserLanguage(principal, fnLanguage, 1L);
133
134               FnUser user = fnUserService.getUser(1L).get();
135               assertEquals(expected.getMessage(), actual.getMessage());
136               assertEquals(expected.getStatus(), actual.getStatus());
137               assertEquals(user.getLanguageId().getLanguageId(), fnLanguage.getLanguageId());
138
139
140               //Clean up
141               fnLanguageDao.delete(fnLanguage);
142        }
143
144        @Test
145        void setUpUserLanguageWrongUserId(){
146               //Given
147               FnLanguage fnLanguage = new FnLanguage();
148               fnLanguage.setLanguageName("Polish");
149               fnLanguage.setLanguageAlias("PL");
150
151               PortalRestResponse<String> expected = new PortalRestResponse<>();
152               expected.setMessage("FAILURE");
153               expected.setStatus(PortalRestStatusEnum.ERROR);
154               expected.setResponse("User for id: 345 do not exist");
155
156               languageController.saveLanguage(principal, fnLanguage);
157               PortalRestResponse<String> actual = languageController.setUpUserLanguage(principal, fnLanguage, 345L);
158
159               assertEquals(expected.getMessage(), actual.getMessage());
160               assertEquals(expected.getStatus(), actual.getStatus());
161               assertEquals(expected.getResponse(), actual.getResponse());
162
163
164               //Clean up
165               fnLanguageDao.delete(fnLanguage);
166        }
167
168
169        @Test
170        void getUserLanguage() {
171               FnLanguageDto expected = new FnLanguageDto();
172               expected.setLanguageAlias("EN");
173               expected.setLanguageName("English");
174
175               FnLanguageDto actual = languageController.getUserLanguage(principal, 1L);
176
177               assertEquals(expected.getLanguageAlias(), actual.getLanguageAlias());
178               assertEquals(expected.getLanguageName(), actual.getLanguageName());
179        }
180
181        @Test
182        void getUserLanguageNotExistingUser() {
183               FnLanguageDto expected = new FnLanguageDto();
184
185               FnLanguageDto actual = languageController.getUserLanguage(principal, 456L);
186
187               assertNull(actual.getLanguageAlias());
188               assertNull(actual.getLanguageName());
189        }
190 }