Added Junits for Policy PAP-REST
[policy/engine.git] / ONAP-PAP-REST / src / test / java / org / onap / policy / pap / test / XACMLPAPTest.java
index 53616aa..c444596 100644 (file)
@@ -22,6 +22,7 @@ package org.onap.policy.pap.test;
 
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.when;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -47,13 +48,21 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.onap.policy.pap.xacml.rest.XACMLPapServlet;
+import org.onap.policy.pap.xacml.rest.controller.ActionPolicyDictionaryController;
 import org.onap.policy.pap.xacml.rest.controller.ClosedLoopDictionaryController;
+import org.onap.policy.pap.xacml.rest.controller.DecisionPolicyDictionaryController;
+import org.onap.policy.pap.xacml.rest.controller.DescriptiveDictionaryController;
+import org.onap.policy.pap.xacml.rest.controller.DictionaryController;
 import org.onap.policy.pap.xacml.rest.controller.FirewallDictionaryController;
+import org.onap.policy.pap.xacml.rest.controller.MicroServiceDictionaryController;
+import org.onap.policy.pap.xacml.rest.controller.PolicyScopeDictionaryController;
+import org.onap.policy.pap.xacml.rest.controller.SafePolicyController;
 import org.onap.policy.pap.xacml.rest.daoimpl.CommonClassDaoImpl;
 import org.onap.policy.pap.xacml.rest.policycontroller.PolicyCreation;
 import org.onap.policy.pap.xacml.rest.util.DictionaryUtils;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.BRMSParamTemplate;
+import org.onap.policy.rest.jpa.Category;
 import org.onap.policy.rest.jpa.PolicyEditorScopes;
 import org.onap.policy.rest.jpa.UserInfo;
 import org.onap.policy.utils.PolicyUtils;
@@ -75,6 +84,7 @@ public class XACMLPAPTest {
     private ServletConfig servletConfig;
     private XACMLPapServlet pap;
     private SessionFactory sessionFactory;
+    private CommonClassDao commonClassDao;
 
     @Before
     public void setUp() throws ServletException {
@@ -90,7 +100,7 @@ public class XACMLPAPTest {
                 .thenReturn("src/test/resources/xacml.pap.properties");
         pap = new XACMLPapServlet();
         pap.init(servletConfig);
-        CommonClassDao commonClassDao = Mockito.mock(CommonClassDao.class);
+        commonClassDao = Mockito.mock(CommonClassDao.class);
         new DictionaryUtils(commonClassDao);
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         Mockito.mock(DictionaryUtils.class);  
@@ -523,6 +533,170 @@ public class XACMLPAPTest {
         Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
     }
     
+    @Test
+    public void testCommonCreateDictionary() throws IOException, SQLException, ServletException {
+       new DictionaryController(commonClassDao);
+       new ActionPolicyDictionaryController(commonClassDao);
+       new SafePolicyController(commonClassDao);
+       new DescriptiveDictionaryController(commonClassDao);
+       List<Object> object = new ArrayList<>();
+        object.add(new Category());
+        when(commonClassDao.getDataById(Category.class, "shortName", "resource")).thenReturn(object);
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       String json = "{\"dictionaryFields\": {\"onapName\": \"testMMRestAPI1\",\"description\": \"testing update response message\"}}";
+       dictionaryTestSetup(false, "OnapName", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\": {\"xacmlId\": \"testMMRestAPI1\",\"datatypeBean\": {\"shortName\": \"string\"}, \"description\": \"testing update\",\"priority\": \"High\",\"userDataTypeValues\": [{\"attributeValues\": \"testAttr\"}, {\"attributeValues\": \"testAttr2\"}, {\"attributeValues\": \"testAttr3\"}]}}";
+       dictionaryTestSetup(false, "Attribute", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"attributeName\":\"TestMMrestAPI1\",\"type\":\"REST\",\"url\":\"testsomeurl.com\",\"method\":\"GET\",\"description\":\"test create\",\"body\":\"Testing Create\",\"headers\":[{\"option\":\"test1\",\"number\":\"test\"},{\"option\":\"test2\",\"number\":\"test\"}]}}";
+       dictionaryTestSetup(false, "Action", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"scopeName\":\"testMMRestAPI1\",\"description\":\"test\",\"attributes\":[{\"option\":\"test1\",\"number\":\"test\"},{\"option\":\"test2\",\"number\":\"test\"}]}}";
+       dictionaryTestSetup(false, "DescriptiveScope", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"riskName\":\"testMMrestAPI1\",\"description\":\"test\"}}";
+       dictionaryTestSetup(false, "RiskType", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"message\":\"test\",\"riskType\":\"testMMrestAPI1\"}}";
+       dictionaryTestSetup(false, "SafePolicyWarning", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+    }
+    
+    @Test
+    public void testDecisionCreateDictionary() throws IOException, SQLException, ServletException {
+       new DecisionPolicyDictionaryController(commonClassDao);
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       String json = "{\"dictionaryFields\":{\"xacmlId\":\"testMMRestAPI1\",\"datatypeBean\":{\"shortName\":\"string\"},\"description\":\"test\",\"priority\":\"High\"}}";
+       dictionaryTestSetup(false, "Settings", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"bbid\":\"BB1\",\"workstep\":\"1\",\"treatments\":\"Manual Handling,Abort,Retry\"}}";
+       dictionaryTestSetup(false, "RainyDayTreatments", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+    }
+    
+    @Test
+    public void testMSCreateDictionary() throws IOException, SQLException, ServletException {
+       new MicroServiceDictionaryController(commonClassDao);
+       new PolicyScopeDictionaryController(commonClassDao);
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       String json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"descriptionValue\":\"test\"}}";
+       dictionaryTestSetup(false, "MicroServiceLocation", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"descriptionValue\":\"test\"}}";
+       dictionaryTestSetup(false, "MicroServiceConfigName", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"description\":\"test\"}}";
+       dictionaryTestSetup(false, "DCAEUUID", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+       dictionaryTestSetup(false, "PolicyScopeService", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+       dictionaryTestSetup(false, "PolicyScopeResource", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+       dictionaryTestSetup(false, "PolicyScopeType", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+       dictionaryTestSetup(false, "PolicyScopeClosedLoop", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+       
+       httpServletRequest = Mockito.mock(HttpServletRequest.class);
+       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+       json = "{\"dictionaryFields\":{\"groupName\":\"testMMrestAPI1\",\"description\":\"testing\"},\"groupPolicyScopeListData1\":{\"resource\":\"ANY\",\"type\":\"ANY\",\"service\":\"ANY\",\"closedloop\":\"ANY\"}}";
+       dictionaryTestSetup(false, "GroupPolicyScopeList", json);
+       // send Request to PAP
+       pap.service(httpServletRequest, httpServletResponse);
+       // Verify 
+       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+    }
+    
     private void dictionaryTestSetup(Boolean updateFlag, String dictionaryType, String json) throws IOException, SQLException {
         Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn("DEVL");
         Mockito.when(httpServletRequest.getHeader("ClientScope")).thenReturn("dictionaryItem");
@@ -565,6 +739,27 @@ public class XACMLPAPTest {
         PolicyCreation.setCommonClassDao(new CommonClassDaoImpl());
     }
 
+    @Test
+    public void getDictionary() throws ServletException, IOException{
+       String[] dictionarys = new String[]{"Attribute", "OnapName", "Action", "BRMSParamTemplate","VSCLAction"
+                       ,"VNFType","PEPOptions","Varbind","Service","Site", "Settings", "RainyDayTreatments",
+                       "DescriptiveScope", "ActionList", "ProtocolList", "Zone", "SecurityZone",
+                       "PrefixList", "AddressGroup", "ServiceGroup", "ServiceList", "TermList",
+                       "MicroServiceLocation", "MicroServiceConfigName", "DCAEUUID", "MicroServiceModels",
+                       "PolicyScopeService", "PolicyScopeResource", "PolicyScopeType", "PolicyScopeClosedLoop",
+                       "GroupPolicyScopeList", "RiskType", "SafePolicyWarning", "MicroServiceDictionary"};
+       for(String dictionary : dictionarys){
+               httpServletRequest = Mockito.mock(HttpServletRequest.class);
+               httpServletResponse = new MockHttpServletResponse();
+               Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn("DEVL");
+               Mockito.when(httpServletRequest.getMethod()).thenReturn("GET");
+               Mockito.when(httpServletRequest.getParameter("apiflag")).thenReturn("api");
+               Mockito.when(httpServletRequest.getParameter("dictionaryType")).thenReturn(dictionary);
+               pap.service(httpServletRequest, httpServletResponse);
+               assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus());
+       }
+    }
+    
     @Test
     public void testDummy() throws ServletException, IOException {