Add and Modify jUnits for code coverage (model, admin)
[policy/engine.git] / POLICY-SDK-APP / src / test / java / org / onap / policy / model / PDPGroupContainerTest.java
index 0cfba2c..5204fc4 100644 (file)
@@ -2,10 +2,8 @@
  * ============LICENSE_START=======================================================
  * ONAP Policy Engine
  * ================================================================================
- * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2019 Samsung
- * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
  * 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
 package org.onap.policy.model;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
 
 import com.att.research.xacml.api.pap.PAPException;
-
+import java.awt.Checkbox;
+import java.util.Set;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.onap.policy.rest.util.PolicyContainer.ItemSetChangeListener;
@@ -35,6 +39,9 @@ import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import org.onap.policy.xacml.api.pap.PAPPolicyEngine;
 
 public class PDPGroupContainerTest {
+    private OnapPDPGroup group = Mockito.mock(OnapPDPGroup.class);
+    private OnapPDPGroup newGroup = Mockito.mock(OnapPDPGroup.class);
+    private OnapPDP pdp = Mockito.mock(OnapPDP.class);
     private PAPPolicyEngine engine = Mockito.mock(PAPPolicyEngine.class);
     private PDPGroupContainer container = new PDPGroupContainer(engine);
 
@@ -46,13 +53,11 @@ public class PDPGroupContainerTest {
         container.refreshGroups();
         assertEquals(container.getGroups().size(), 0);
 
-        OnapPDPGroup group = Mockito.mock(OnapPDPGroup.class);
         container.makeDefault(group);
-        OnapPDPGroup newGroup = Mockito.mock(OnapPDPGroup.class);
         container.removeGroup(group, newGroup);
-        OnapPDP pdp = Mockito.mock(OnapPDP.class);
         container.updatePDP(pdp);
         container.updateGroup(group);
+        container.updateGroup(group, "testUserName");
         assertNull(container.getContainerPropertyIds());
         assertEquals(container.getItemIds().size(), 0);
         assertEquals(container.getType(itemId), null);
@@ -105,7 +110,7 @@ public class PDPGroupContainerTest {
     }
 
     @Test(expected = IndexOutOfBoundsException.class)
-    public void testGetIdByIndex() {
+    public void testGetIdByIndexException() {
         container.getIdByIndex(0);
     }
 
@@ -115,7 +120,145 @@ public class PDPGroupContainerTest {
     }
 
     @Test(expected = IllegalArgumentException.class)
-    public void testGetItemIds() {
+    public void testGetItemIdsException() {
         container.getItemIds(0, 1);
     }
+
+    @Test
+    public void testGetType() {
+        assertEquals(Boolean.class, container.getType("Default"));
+        assertEquals(Checkbox.class, container.getType("Selected"));
+        assertEquals(Set.class, container.getType("PDPs"));
+        assertEquals(Set.class, container.getType("Policies"));
+        assertEquals(Set.class, container.getType("PIP Configurations"));
+        assertEquals(String.class, container.getType("Id"));
+        assertEquals(String.class, container.getType("Name"));
+        assertEquals(String.class, container.getType("Description"));
+        assertEquals(String.class, container.getType("Status"));
+    }
+
+    @Test
+    public void testContainerPAPExceptions() throws PAPException {
+        doThrow(PAPException.class).when(engine).getOnapPDPGroups();
+        container.refreshGroups();
+
+        doThrow(PAPException.class).when(engine).setDefaultGroup(group);
+        container.makeDefault(group);
+
+        doThrow(PAPException.class).when(engine).updatePDP(pdp);
+        container.updatePDP(pdp);
+
+        doThrow(PAPException.class).when(engine).updateGroup(group);
+        container.updateGroup(group);
+
+        doThrow(PAPException.class).when(engine).updateGroup(group, "testUserName");
+        container.updateGroup(group, "testUserName");
+
+        doThrow(PAPException.class).when(engine).movePDP(pdp, group);
+        container.movePDP(pdp, group);
+    }
+
+    @Test(expected = PAPException.class)
+    public void testContainerRemoveGroup() throws PAPException {
+        doThrow(PAPException.class).when(engine).removeGroup(group, newGroup);
+        container.removeGroup(group, newGroup);
+    }
+
+    @Test(expected = PAPException.class)
+    public void testContainerRemovePDP() throws PAPException {
+        doThrow(PAPException.class).when(engine).removePDP(pdp);
+        container.removePDP(pdp, group);
+    }
+
+    @Test(expected = UnsupportedOperationException.class)
+    public void testRemoveDefaultGroup() throws PAPException {
+        when(group.isDefaultGroup()).thenReturn(true);
+        container.removeGroup(group, newGroup);
+    }
+
+    @Test
+    public void testGetItemIds() {
+        assertNotNull(container.getItemIds(0, 0));
+    }
+
+    @Test
+    public void testContainsId() {
+        assertFalse(container.containsId(group));
+    }
+
+    @Test
+    public void testGroupMethods() {
+        container.groups.add(group);
+
+        Object retObj = container.getIdByIndex(0);
+        assertTrue(retObj instanceof OnapPDPGroup);
+        assertNotNull(retObj);
+
+        Object retFirstItemId = container.firstItemId();
+        assertTrue(retFirstItemId instanceof OnapPDPGroup);
+        assertNotNull(retFirstItemId);
+
+        Object retLastItemId = container.lastItemId();
+        assertTrue(retLastItemId instanceof OnapPDPGroup);
+        assertNotNull(retLastItemId);
+
+        assertTrue(container.isFirstId(group));
+
+        assertTrue(container.isLastId(group));
+    }
+
+    @Test
+    public void testNextItemId() {
+        OnapPDPGroup groupNotInList = Mockito.mock(OnapPDPGroup.class);
+        Object retObj = null;
+
+        container.groups.add(group);
+        container.groups.add(newGroup);
+
+        assertNull(container.nextItemId(groupNotInList));
+        assertNull(container.nextItemId(newGroup));
+
+        retObj = container.nextItemId(group);
+        assertNotNull(retObj);
+        assertTrue(retObj instanceof OnapPDPGroup);
+    }
+
+    @Test
+    public void testPrevItemId() {
+        OnapPDPGroup groupNotInList = Mockito.mock(OnapPDPGroup.class);
+        Object retObj = null;
+
+        container.groups.add(group);
+        container.groups.add(newGroup);
+
+        assertNull(container.prevItemId(groupNotInList));
+        assertNull(container.prevItemId(group));
+
+        retObj = container.prevItemId(newGroup);
+        assertNotNull(retObj);
+        assertTrue(retObj instanceof OnapPDPGroup);
+    }
+
+    @Test
+    public void testRemoveNullItem() {
+        OnapPDPGroup nullGroup = null;
+        assertFalse(container.removeItem(nullGroup));
+    }
+
+    @Test(expected = UnsupportedOperationException.class)
+    public void testRemoveDefaultItem() {
+        when(group.getId()).thenReturn("Default");
+        container.removeItem(group);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testRemoveItem() throws PAPException {
+        assertTrue(container.removeItem(group));
+
+        PAPPolicyEngine mockPAPPolicyEngine = Mockito.mock(PAPPolicyEngine.class);
+        PDPGroupContainer groupContainer = new PDPGroupContainer(mockPAPPolicyEngine);
+        when(mockPAPPolicyEngine.getDefaultGroup()).thenThrow(PAPException.class);
+        assertFalse(groupContainer.removeItem(group));
+    }
 }