Catalog alignment
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / ecomp / PortalRestAPICentralServiceImplTest.java
index d364bf1..964e625 100644 (file)
@@ -30,36 +30,38 @@ import org.onap.portalsdk.core.restful.domain.EcompRole;
 import org.onap.portalsdk.core.restful.domain.EcompUser;
 import org.openecomp.sdc.be.model.User;
 import org.openecomp.sdc.be.user.UserBusinessLogic;
+import org.openecomp.sdc.be.user.UserBusinessLogicExt;
 import org.openecomp.sdc.exception.ResponseFormat;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
 public class PortalRestAPICentralServiceImplTest {
 
-    PortalRestAPICentralServiceImpl testSubject;
-    UserBusinessLogic ubl;
+    private PortalRestAPICentralServiceImpl testSubject;
+    private UserBusinessLogic ubl;
+    private  UserBusinessLogicExt uble;
 
     @Before
-    public void setUp() throws Exception {
+    public void createTestSubject() {
         ubl = Mockito.mock(UserBusinessLogic.class);
-        testSubject = new PortalRestAPICentralServiceImpl(ubl);
+        uble = Mockito.mock(UserBusinessLogicExt.class);
+        testSubject = new PortalRestAPICentralServiceImpl(ubl, uble);
+
     }
 
     @Test
     public void testGetAppCredentials() throws Exception {
         Map<String, String> appCredentials = testSubject.getAppCredentials();
-        Assert.assertTrue(appCredentials.get(PortalRestAPICentralServiceImpl.PortalPropertiesEnum.PORTAL_APP_NAME.value()).equals("sdc"));
-        Assert.assertTrue(appCredentials.get(PortalRestAPICentralServiceImpl.PortalPropertiesEnum.PORTAL_USER.value()).equals("sdc"));
-        Assert.assertTrue(appCredentials.get(PortalRestAPICentralServiceImpl.PortalPropertiesEnum.PORTAL_PASS.value()).equals("asdc"));
+        Assert.assertTrue(appCredentials.get("appName").equals("sdc"));
+        Assert.assertTrue(appCredentials.get("username").equals("sdc"));
+        Assert.assertTrue(appCredentials.get("password").equals("asdc"));
     }
 
     @Test
-    public void testPushUserGeneralError() throws Exception {
-        ResponseFormat responseFormat = Mockito.mock(ResponseFormat.class);
-        Mockito.when(responseFormat.getMessageId()).thenReturn("mock");
-        Mockito.when(ubl.createUser(Mockito.any(), Mockito.any())).thenReturn(Either.right(responseFormat));
+    public void testPushUser() {
         EcompUser user = new EcompUser();
         Set<EcompRole> roleSet = new HashSet<>();
         EcompRole role = new EcompRole();
@@ -67,79 +69,206 @@ public class PortalRestAPICentralServiceImplTest {
         role.setName("Designer");
         roleSet.add(role);
         user.setRoles(roleSet);
-        try{
+        try {
             testSubject.pushUser(user);
-        }catch (PortalAPIException e) {
-            System.out.println(e);
-            Assert.assertTrue(e.getMessage().startsWith("Failed to create user {}"));
+        } catch (PortalAPIException e) {
+            Assert.fail();
         }
+    }
 
+    @Test
+    public void testPushUserUBLError() {
+        Mockito.when(ubl.createUser(Mockito.anyString(), Mockito.any(User.class))).thenThrow(RuntimeException.class);
+        EcompUser user = new EcompUser();
+        Set<EcompRole> roleSet = new HashSet<>();
+        EcompRole role = new EcompRole();
+        role.setId(1L);
+        role.setName("Designer");
+        roleSet.add(role);
+        user.setRoles(roleSet);
+        try {
+            testSubject.pushUser(user);
+        } catch (PortalAPIException e) {
+            Assert.assertTrue(e.getMessage().startsWith("Failed to create user"));
+            return;
+        }
+        Assert.fail();
     }
 
     @Test
-    public void testPushUserSuccess() throws Exception {
-        ResponseFormat responseFormat = Mockito.mock(ResponseFormat.class);
-        Mockito.when(responseFormat.getMessageId()).thenReturn("SVC4006");
-        Mockito.when(ubl.createUser(Mockito.any(), Mockito.any())).thenReturn(Either.left(new User()));
+    public void testPushUserMultipleRoles() {
         EcompUser user = new EcompUser();
         Set<EcompRole> roleSet = new HashSet<>();
         EcompRole role = new EcompRole();
         role.setId(1L);
         role.setName("Designer");
         roleSet.add(role);
+        EcompRole role1 = new EcompRole();
+        role.setId(2L);
+        roleSet.add(role1);
+        role.setName("Tester");
         user.setRoles(roleSet);
-        testSubject.pushUser(user);
+        try {
+            testSubject.pushUser(user);
+        } catch (PortalAPIException e) {
+            Assert.assertTrue(e.getMessage().startsWith("Received multiple roles for user"));
+            return;
+        }
+        Assert.fail();
     }
 
     @Test
-    public void testPushUserNullRoles() throws Exception {
+    public void testPushUserNullRoles() {
         EcompUser user = new EcompUser();
         try{
             testSubject.pushUser(user);
         } catch (PortalAPIException e){
             Assert.assertTrue(e.getMessage().equals("Received null roles for user" + user));
+            return;
         }
-
+        Assert.fail();
     }
 
     @Test
-    public void testPushUserUserNull() throws Exception {
+    public void testPushUserUserNull() {
         try {
             testSubject.pushUser(null);
         } catch (PortalAPIException e) {
             Assert.assertTrue(e.getMessage().equals("Received null for argument user"));
+            return;
+        }
+        Assert.fail();
+    }
+
+    @Test
+    public void testEditUserUserNull() {
+        try {
+            testSubject.editUser(null, null);
+        } catch (PortalAPIException e) {
+            Assert.assertTrue(e.getMessage().equals("Received null for argument user"));
+            return;
+        }
+        Assert.fail();
+    }
+
+    @Test
+    public void testEditUserIdNull() {
+        try {
+            testSubject.editUser(null, new EcompUser());
+        } catch (PortalAPIException e) {
+            Assert.assertTrue(e.getMessage().equals("Received null for argument loginId"));
+            return;
+        }
+        Assert.fail();
+    }
+
+    @Test
+    public void testEditUserFailOnUpdate() {
+        Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.right(new ResponseFormat()));
+        Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
+        EcompUser user = new EcompUser();
+        Set<EcompRole> roleSet = new HashSet<>();
+        EcompRole role = new EcompRole();
+        role.setId(1L);
+        role.setName("Designer");
+        roleSet.add(role);
+        user.setRoles(roleSet);
+        try {
+            testSubject.editUser("mock_id", user);
+        } catch (PortalAPIException e) {
+            Assert.assertTrue(e.getMessage().startsWith("Failed to edit user"));
         }
+    }
 
+    @Test
+    public void testEditUserDeactivate() {
+        Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
+        Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
+        EcompUser user = new EcompUser();
+        try {
+            testSubject.editUser("mock_id", user);
+        } catch (PortalAPIException e) {
+            Assert.fail();
+        }
     }
 
-    /**
-    *
-    * Method: editUser(String loginId, EcompUser user)
-    *
-    */
     @Test
-    public void testEditUser() throws Exception {
-    //TODO: Test goes here...
+    public void testEditUserFailUpdate() {
+        Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
+        Mockito.when(ubl.updateUserRole(Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenThrow(new RuntimeException());
+        Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
+        EcompUser user = new EcompUser();
+        Set<EcompRole> roleSet = new HashSet<>();
+        EcompRole role = new EcompRole();
+        role.setId(1L);
+        role.setName("Designer");
+        roleSet.add(role);
+        user.setRoles(roleSet);
+        try {
+            testSubject.editUser("mock_id", user);
+        } catch (PortalAPIException e) {
+            Assert.assertTrue(e.getMessage().startsWith("Error: Failed to update user role"));
+            return;
+        }
+        Assert.fail();
     }
 
-    /**
-    *
-    * Method: getUserId(HttpServletRequest request)
-    *
-    */
     @Test
-    public void testGetUserId() throws Exception {
-    //TODO: Test goes here...
+    public void testEditUserFailDeactivate() {
+        Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
+        Mockito.when(uble.deActivateUser(Mockito.anyString(), Mockito.anyString())).thenThrow(new RuntimeException());
+        Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
+        EcompUser user = new EcompUser();
+        try {
+            testSubject.editUser("mock_id", user);
+        } catch (PortalAPIException e) {
+            Assert.assertTrue(e.getMessage().startsWith("Error: Failed to deactivate user"));
+            return;
+        }
+        Assert.fail();
     }
 
-    /**
-    *
-    * Method: value()
-    *
-    */
     @Test
-    public void testValue() throws Exception {
-    //TODO: Test goes here...
+    public void testEditUser() {
+        Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
+        Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
+        EcompUser user = new EcompUser();
+        Set<EcompRole> roleSet = new HashSet<>();
+        EcompRole role = new EcompRole();
+        role.setId(1L);
+        role.setName("Designer");
+        roleSet.add(role);
+        user.setRoles(roleSet);
+        try {
+            testSubject.editUser("mock_id", user);
+        } catch (PortalAPIException e) {
+            Assert.fail();
+        }
+    }
+
+    @Test
+    public void testGetUserId() {
+        HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class);
+        String mockHeader = "MockHeader";
+        Mockito.when(httpServletRequestMock.getHeader(Mockito.anyString())).thenReturn(mockHeader);
+        try {
+            String userId = testSubject.getUserId(httpServletRequestMock);
+            Assert.assertTrue(userId.equals(mockHeader));
+        } catch (PortalAPIException e){
+            Assert.fail();
+        }
+
     }
 
+    @Test
+    public void testGetUserIdException() {
+        HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class);
+        try {
+            testSubject.getUserId(httpServletRequestMock);
+        } catch (PortalAPIException e){
+            Assert.assertTrue(e.getMessage().equals("Failed to get user_id header"));
+            return;
+        }
+        Assert.fail();
+    }
 }