Merge "ONAP code change for log files consolidation"
authorJorge Hernandez <jh1730@att.com>
Mon, 26 Mar 2018 13:55:11 +0000 (13:55 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 26 Mar 2018 13:55:11 +0000 (13:55 +0000)
36 files changed:
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDao.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/BRMSDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ClosedLoopDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DecisionPolicyDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DescriptiveDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/FirewallDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/MicroServiceDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PolicyScopeDictionaryController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/SafePolicyController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/util/DictionaryUtils.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/XACMLPAPTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerTest.java [new file with mode: 0644]
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/util/JPAUtilsTest.java
ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpLoader.java
ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/PAPServices.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/models/PDPResponseTest.java [new file with mode: 0644]
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/BRMSParamPolicyServiceTest.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/ClosedLoopFaultPolicyServiceTest.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/ClosedLoopPMPolicyServiceTest.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/DecisionPolicyServiceTest.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/FirewallPolicyServiceTest.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/MicroServicesPolicyServiceTest.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/PAPServicesTest.java
ONAP-REST/src/test/java/org/onap/policy/rest/adapter/AddressGroupJsonTest.java [new file with mode: 0644]
ONAP-REST/src/test/java/org/onap/policy/rest/adapter/ServiceGroupJsonTest.java [new file with mode: 0644]
ONAP-REST/src/test/java/org/onap/policy/rest/util/PDPPolicyContainerTest.java
ONAP-REST/src/test/java/org/onap/policy/rest/util/PolicyItemSetChangeNotifierTest.java [new file with mode: 0644]
ONAP-SDK-APP/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java [new file with mode: 0644]
POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java [new file with mode: 0644]
docs/platform/index.rst
docs/platform/modAmsterTemplate.rst
docs/platform/runningEclipse.rst
docs/platform/tutorial_cl.rst

index 84cd72f..a30c9c7 100644 (file)
@@ -46,7 +46,7 @@ import java.util.Scanner;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.CopyOnWriteArrayList;
-
+import javax.json.JsonException;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 import javax.persistence.PersistenceException;
@@ -792,7 +792,6 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                } else {
                        PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doGet)");
                }
-               try {
                        loggingContext.metricStarted();
                        XACMLRest.dumpRequest(request);
                        loggingContext.metricEnded();
@@ -907,7 +906,18 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                                request.getRemoteHost().equals(request.getLocalAddr())) {
                                        // Return status information - basically all the groups
                                        loggingContext.setServiceName("PAP.getGroups");
-                                       Set<OnapPDPGroup> groups = papEngine.getOnapPDPGroups();
+                                       Set<OnapPDPGroup> groups = null;
+                                       try {
+                                           groups = papEngine.getOnapPDPGroups();
+                                       } catch(PAPException e) {
+                                           LOGGER.debug(e);
+                                           PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " GET exception");
+                                           loggingContext.transactionEnded();
+                                           PolicyLogger.audit("Transaction Failed - See Error.log");
+                                           setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+                                           im.endTransaction();
+                                           return;
+                                       }
                                        // convert response object to JSON and include in the response
                                        mapperWriteValue(new ObjectMapper(), response,  groups);
                                        response.setHeader("content-type", "application/json");
@@ -984,15 +994,6 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                PolicyLogger.audit("Transaction Failed - See Error.log");
                                setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
                        }
-               }  catch (PAPException e) {
-                       LOGGER.debug(e);
-                       PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " GET exception");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                       im.endTransaction();
-                       return;
-               }
                loggingContext.transactionEnded();
                PolicyLogger.audit("Transaction Ended");
                im.endTransaction();
@@ -1017,26 +1018,24 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                        im.startTransaction();
                        loggingContext.metricEnded();
                        PolicyLogger.metrics("XACMLPapServlet doPut im startTransaction");
+               } catch(AdministrativeStateException e) {
+                   String message = "PUT interface called for PAP " + papResourceName + 
+                           " but it has an Administrative state of " + im.getStateManager().getAdminState() +
+                           "\n Exception Message: " + e.getMessage();
+                   logMessage(e, message, loggingContext, response);
+                   return;
+               } catch(StandbyStatusException e) {
+                   String message = "PUT interface called for PAP " + papResourceName + 
+                           " but it has a Standby Status of " + im.getStateManager().getStandbyStatus() +
+                           "\n Exception Message: " + e.getMessage();
+                   logMessage(e, message, loggingContext, response);
+                   return;
                } catch (IntegrityMonitorException e) {
-                       String message = "PUT interface called for PAP " + papResourceName;
-                       if (e instanceof AdministrativeStateException) {
-                               message += " but it has an Administrative state of "
-                                       + im.getStateManager().getAdminState();
-                       } else if (e instanceof StandbyStatusException) {
-                               message += " but it has a Standby Status of "
-                                       + im.getStateManager().getStandbyStatus();
-                       } else {
-                               message += " but an exception occurred";
-
-                       }
-                       message += "\n Exception Message: " + e.getMessage();
-
-                       LOGGER.info(message, e);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
+                   String message = "PUT interface called for PAP " + papResourceName +
+                           " but an exception occurred" +
+                           "\n Exception Message: " + e.getMessage();
+                   logMessage(e, message, loggingContext, response);
+                   return;
                }
 
                loggingContext.metricStarted();
@@ -1894,7 +1893,16 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                } else {
                                        // request is for top-level properties about all groups
                                        loggingContext.setServiceName("AC:PAP.getAllGroups");
-                                       Set<OnapPDPGroup> groups = papEngine.getOnapPDPGroups();
+                                       Set<OnapPDPGroup> groups = null;
+                                       try {
+                                           groups = papEngine.getOnapPDPGroups();
+                                       } catch(PAPException e) {
+                                           PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC Get exception");
+                                           loggingContext.transactionEnded();
+                                           PolicyLogger.audit("Transaction Failed - See Error.log");
+                                           setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+                                           return;
+                                       }
                                        // convert response object to JSON and include in the response
                                        mapperWriteValue(new ObjectMapper(), response,  groups);
                                        if (LOGGER.isDebugEnabled()) {
@@ -2041,7 +2049,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                LOGGER.info("JSON request from AC: " + json);
                                // convert Object sent as JSON into local object
                                ObjectMapper mapper = new ObjectMapper();
-                               Object objectFromJSON = mapper.readValue(json, StdPDP.class);
+                               Object objectFromJSON = null;
+                               try {
+                                   objectFromJSON = mapper.readValue(json, StdPDP.class);
+                               } catch(Exception e) {
+                                   LOGGER.error(e);
+                               }
                                if (pdpId == null ||
                                                objectFromJSON == null ||
                                                ! (objectFromJSON instanceof StdPDP) ||
@@ -2146,7 +2159,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                LOGGER.info("JSON request from AC: " + json);
                                // convert Object sent as JSON into local object
                                ObjectMapper mapper = new ObjectMapper();
-                               Object objectFromJSON  = mapper.readValue(json, StdPDPGroup.class);
+                               Object objectFromJSON = null;
+                               try {
+                                   objectFromJSON  = mapper.readValue(json, StdPDPGroup.class);
+                               } catch(Exception e) {
+                                   LOGGER.error(e);
+                               }
                                if (objectFromJSON == null || ! (objectFromJSON instanceof StdPDPGroup) ||
                                                ! ((StdPDPGroup)objectFromJSON).getId().equals(group.getId())) {
                                        PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + group.getId() + " objectFromJSON="+objectFromJSON);
@@ -2822,24 +2840,21 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                        PolicyLogger.audit("Transaction Failed - See Error.log");
                        response.setStatus(HttpServletResponse.SC_OK);
                        return;
-               }catch (ForwardProgressException | AdministrativeStateException | StandbyStatusException e){
-                       String submsg;
-                       if (e instanceof ForwardProgressException) {
-                               submsg = " is not making forward progress.";
-                       } else if (e instanceof AdministrativeStateException) {
-                               submsg = " Administrative State is LOCKED.";
-                       } else {
-                               submsg = " Standby Status is NOT PROVIDING SERVICE.";
-                       }
-
-                       String message = "GET:/pap/test called and PAP " + papResourceName + submsg
-                                       + " Exception Message: " + e.getMessage();
-                       LOGGER.info(message, e);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
+               }catch (ForwardProgressException e){
+                   String message = "GET:/pap/test called and PAP " + papResourceName + " is not making forward progress."
+                           + " Exception Message: " + e.getMessage();
+                   logMessage(e, message, loggingContext, response);
+                   return;
+               }catch (AdministrativeStateException e){
+                   String message = "GET:/pap/test called and PAP " + papResourceName + " Administrative State is LOCKED."
+                           + " Exception Message: " + e.getMessage();
+                   logMessage(e, message, loggingContext, response);
+                   return;
+               }catch (StandbyStatusException e){
+                   String message = "GET:/pap/test called and PAP " + papResourceName + " Standby Status is NOT PROVIDING SERVICE."
+                           + " Exception Message: " + e.getMessage();
+                   logMessage(e, message, loggingContext, response);
+                   return;
                }catch (Exception e) {
                        //A subsystem is not making progress, is locked, standby or is not responding
                        String eMsg = e.getMessage();
@@ -3014,4 +3029,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
        public static void setMsPolicyName(String msPolicyName) {
                XACMLPapServlet.msPolicyName = msPolicyName;
        }
+       
+       private void logMessage(Exception e, String message, ONAPLoggingContext loggingContext, HttpServletResponse response) {
+           LOGGER.info(message, e);
+           PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+           loggingContext.transactionEnded();
+           PolicyLogger.audit("Transaction Failed - See Error.log");
+           setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+       }
 }
index 9ac8582..a8449e3 100644 (file)
@@ -127,7 +127,7 @@ public class PolicyDBDao {
        public static final String duplicatePolicyId = "Somehow, more than one policy with the id ";
        public static final String foundInDB = " were found in the database";
        
-       public static boolean isJunit = false;
+       private static boolean isJunit = false;
 
        public static void setJunit(boolean isJunit) {
                PolicyDBDao.isJunit = isJunit;
@@ -1250,6 +1250,9 @@ public class PolicyDBDao {
                                        for(PDPPolicy policy : policies){
                                                try{
                                                        String[] stringArray = getNameScopeAndVersionFromPdpPolicy(policy.getId());
+                                                       if(stringArray == null) {
+                                                           throw new IllegalArgumentException("Invalid input - policyID must contain name, scope and version");
+                                                       }
                                                        List<PolicyEntity> policyEntityList;
                                                        Query getPolicyEntitiesQuery = em.createNamedQuery("PolicyEntity.findByNameAndScope");
                                                        getPolicyEntitiesQuery.setParameter("name", stringArray[0]);
@@ -1767,7 +1770,7 @@ public class PolicyDBDao {
                                        policyId = policyName;
                                        policyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:name AND p.scope=:scope");
                                        policyQuery.setParameter("name", policyId);
-                                       policyQuery.setParameter(scope, scope);
+                                       policyQuery.setParameter("scope", scope);
                                } else{
                                        policyId = String.valueOf(policyID);
                                        policyQuery = em.createNamedQuery("PolicyEntity.FindById");
index 3d275c3..59a7ed3 100644 (file)
@@ -64,7 +64,7 @@ public class ActionPolicyDictionaryController {
        }
 
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @RequestMapping(value={"/get_ActionPolicyDictDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
index f07ca34..0ab5cf9 100644 (file)
@@ -91,7 +91,7 @@ public class BRMSDictionaryController{
        }
        
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
 
        @RequestMapping(value={"/get_BRMSParamDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
index 2b05567..5d28c82 100644 (file)
@@ -89,7 +89,7 @@ public class ClosedLoopDictionaryController{
        }
 
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @RequestMapping(value={"/get_VSCLActionDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
index 9b79303..6e68d78 100644 (file)
@@ -66,7 +66,7 @@ public class DecisionPolicyDictionaryController {
        }
        
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @RequestMapping(value={"/get_SettingsDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
index 364a4f7..db71096 100644 (file)
@@ -65,7 +65,7 @@ public class DescriptiveDictionaryController {
        }
 
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @RequestMapping(value={"/get_DescriptiveScopeByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
index 7e30635..0b7693c 100644 (file)
@@ -69,7 +69,7 @@ public class DictionaryController {
        }
        
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @RequestMapping(value={"/get_AttributeDatabyAttributeName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
index d02cbca..bd1fb0e 100644 (file)
@@ -113,7 +113,7 @@ public class FirewallDictionaryController {
        }       
 
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @RequestMapping(value={"/get_PrefixListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
index 20e75a0..becf5ad 100644 (file)
@@ -92,7 +92,7 @@ public class MicroServiceDictionaryController {
     }  
        
     private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
     
        @Autowired
index 40c9d72..fd3d2f6 100644 (file)
@@ -71,7 +71,7 @@ public class PolicyScopeDictionaryController {
        }       
 
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @Autowired
index 23450cb..209ba4f 100644 (file)
@@ -66,7 +66,7 @@ public class SafePolicyController {
        }       
        
        private DictionaryUtils getDictionaryUtilsInstance(){
-               return DictionaryUtils.dictionaryUtils != null ? DictionaryUtils.getDictionaryUtils() : new DictionaryUtils();
+               return DictionaryUtils.getDictionaryUtils();
        }
        
        @RequestMapping(value = { "/get_RiskTypeDataByName" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
index e185959..5610577 100644 (file)
@@ -58,10 +58,10 @@ public class DictionaryUtils {
        
        private static CommonClassDao commonClassDao;
        
-       public static DictionaryUtils dictionaryUtils;
+       private static DictionaryUtils dictionaryUtils;
        
        public static synchronized DictionaryUtils getDictionaryUtils() {
-               return dictionaryUtils;
+           return dictionaryUtils != null ? dictionaryUtils : new DictionaryUtils();
        }
 
        public static synchronized void setDictionaryUtils(DictionaryUtils dictionaryUtils) {
index ca2b679..5208ad7 100644 (file)
@@ -35,18 +35,25 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityTransaction;
+import javax.persistence.Persistence;
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
 import org.hibernate.SessionFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
+import org.onap.policy.common.ia.IntegrityAuditProperties;
 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;
@@ -73,8 +80,8 @@ import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder;
 
 import com.mockrunner.mock.web.MockServletInputStream;
 
-
 public class XACMLPAPTest {
+       private static final Log logger = LogFactory.getLog(XACMLPAPTest.class);
 
     private static final String ENVIRONMENT_HEADER = "Environment";
     private List<String> headers = new ArrayList<>();
@@ -86,6 +93,48 @@ public class XACMLPAPTest {
     private SessionFactory sessionFactory;
     private CommonClassDao commonClassDao;
 
+       private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
+       private static final String DEFAULT_DB_USER = "sa";
+       private static final String DEFAULT_DB_PWD = "";
+
+       @Before
+       public void setUpDB() throws Exception {
+               logger.info("setUpDB: Entering");
+
+               Properties properties = new Properties();
+               properties.put(IntegrityAuditProperties.DB_DRIVER, XACMLPAPTest.DEFAULT_DB_DRIVER);
+               properties.put(IntegrityAuditProperties.DB_URL, "jdbc:h2:file:./sql/xacmlTest");
+               properties.put(IntegrityAuditProperties.DB_USER, XACMLPAPTest.DEFAULT_DB_USER);
+               properties.put(IntegrityAuditProperties.DB_PWD, XACMLPAPTest.DEFAULT_DB_PWD);
+               properties.put(IntegrityAuditProperties.SITE_NAME, "SiteA");
+               properties.put(IntegrityAuditProperties.NODE_TYPE, "pap");
+
+               //Clean the iaTest DB table for IntegrityAuditEntity entries
+               cleanDb("testPapPU", properties);
+
+               logger.info("setUpDB: Exiting");
+       }
+
+       public void cleanDb(String persistenceUnit, Properties properties){
+               logger.debug("cleanDb: enter");
+
+               EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit, properties);
+
+               EntityManager em = emf.createEntityManager();
+               // Start a transaction
+               EntityTransaction et = em.getTransaction();
+
+               et.begin();
+
+               // Clean up the DB
+               em.createQuery("Delete from IntegrityAuditEntity").executeUpdate();
+
+               // commit transaction
+               et.commit();
+               em.close();
+               logger.debug("cleanDb: exit");
+       }
+
     @Before
     public void setUp() throws ServletException {
         httpServletRequest = Mockito.mock(HttpServletRequest.class);
diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerTest.java
new file mode 100644 (file)
index 0000000..6b58184
--- /dev/null
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP-PAP-REST
+ * ================================================================================
+ * Copyright (C) 2018 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
+ * 
+ *      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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pap.xacml.rest.handler;
+
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+
+public class DictionaryHandlerTest {
+  @Test
+  public void negTestHandler() {
+    // Set the system property temporarily
+    String systemKey = "dictionary.impl.className";
+    String oldProperty = System.getProperty(systemKey);
+    System.setProperty(systemKey, "foobar");
+
+    // Run negative test on instance
+    assertNull(DictionaryHandler.getInstance());
+
+    // Restore the original system property
+    if (oldProperty != null) {
+      System.setProperty(systemKey, oldProperty);
+    } else {
+      System.clearProperty(systemKey);
+    }
+  }
+}
index 2c852fd..9b45c3b 100644 (file)
 package org.onap.policy.pap.xacml.rest.util;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
-import org.junit.Rule;
+import javax.persistence.Query;
 import org.junit.Test;
-import org.junit.rules.ExpectedException;
 import org.mockito.Mockito;
 
 public class JPAUtilsTest {
-       @Rule
-       public ExpectedException thrown = ExpectedException.none();
-       
-       @Test
-       public void testJPAUtils() throws IllegalAccessException {
-               EntityManagerFactory emf = Mockito.mock(EntityManagerFactory.class);
-               JPAUtils utils = JPAUtils.getJPAUtilsInstance(emf);
-               
-               assertEquals(utils.dbLockdownIgnoreErrors(), false);
-               
-               thrown.expect(NullPointerException.class);
-               utils.dbLockdown();
-       }
+  @Test(expected = IllegalAccessException.class)
+  public void testJPAUtils() throws IllegalAccessException {
+    // Setup test data
+    EntityManagerFactory emf = Mockito.mock(EntityManagerFactory.class);
+    EntityManager em = Mockito.mock(EntityManager.class);
+    Query query = Mockito.mock(Query.class);
+    Mockito.when(emf.createEntityManager()).thenReturn(em);
+    Mockito.when(em.createNamedQuery(Mockito.any())).thenReturn(query);
+
+    // Test lockdown
+    JPAUtils utils = JPAUtils.getJPAUtilsInstance(emf);
+    assertEquals(utils.dbLockdownIgnoreErrors(), false);
+    utils.dbLockdown();
+    fail("Expecting an exception");
+  }
 }
index 5c9f860..102d43f 100644 (file)
@@ -550,20 +550,14 @@ public class XACMLPdpLoader {
                                                                        // properties
                                                                        //
                                                                        changed = true;
+                                                               } catch (MalformedURLException e) {
+                                                                       papUrls.failed();
+                                                                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Policy '" + policy
+                                                                               + "' had bad URL in new configuration, URL='" + propLocation + "'");
                                                                } catch (Exception e) {
                                                                        papUrls.failed();
-                                                                       if (e instanceof MalformedURLException) {
-                                                                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Policy '"
-                                                                                               + policy
-                                                                                               + "' had bad URL in new configuration, URL='"
-                                                                                               + propLocation + "'");
-                                                                               
-                                                                       } else {
-                                                                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while retrieving policy "
-                                                                                               + policy
-                                                                                               + " from URL "
-                                                                                               + url + ", e=" + e);
-                                                                       }
+                                                                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while retrieving policy "
+                                                                               + policy + " from URL " + url + ", e=" + e);
                                                                }
                                                                papUrls.getNext();
                                                        }
index 5919484..3c0ea38 100644 (file)
@@ -54,12 +54,16 @@ public class PAPServices {
     
     private int responseCode = 0;
     private static String environment = "DEVL";
-    public static Boolean junit = false;
+    private static Boolean isJunit = false;
     private static List<String> paps = null;
        private static final Object papResourceLock = new Object();
     private String operation = null;
     private String requestMethod = null;
-    private String encoding = null; 
+    private String encoding = null;
+
+    public static void setJunit(boolean isJunit) {
+        PAPServices.isJunit = isJunit;
+    }
 
     public PAPServices() {
         environment = PDPApiAuth.getEnvironment();
@@ -164,7 +168,7 @@ public class PAPServices {
                 } else if(content != null){
                     // the content is an object to be encoded in JSON
                     ObjectMapper mapper = new ObjectMapper();
-                    if (!junit) {
+                    if (!isJunit) {
                         mapper.writeValue(connection.getOutputStream(),
                                 content);
                     }
@@ -174,7 +178,7 @@ public class PAPServices {
                 responseCode = connection.getResponseCode();
                 // If Connected to PAP then break from the loop and continue
                 // with the Request
-                if (connection.getResponseCode() > 0 || junit) {
+                if (connection.getResponseCode() > 0 || isJunit) {
                     connected = true;
                     break;
                 } else {
@@ -183,7 +187,7 @@ public class PAPServices {
                 }
             } catch (Exception e) {
                 // This means that the PAP is not working
-                if (junit) {
+                if (isJunit) {
                     connected = true;
                     break;
                 }
@@ -212,7 +216,7 @@ public class PAPServices {
                                        XACMLErrorConstants.ERROR_SYSTEM_ERROR
                                        + "Decoding the result ", e);
                }
-               if (junit) {
+               if (isJunit) {
                        response = SUCCESS;
                }
             }else{
@@ -326,10 +330,10 @@ public class PAPServices {
     
     private String checkResponse(HttpURLConnection connection, UUID requestID) throws IOException {
         String response = null;
-        if (responseCode == 200 || junit) {         
+        if (responseCode == 200 || isJunit) {         
             // Check for successful creation of policy
             String isSuccess = null;
-            if (!junit) { // is this a junit test?
+            if (!isJunit) { // is this a junit test?
                 isSuccess = connection.getHeaderField("successMapKey");
                 operation = connection.getHeaderField("operation");
             } else {
@@ -603,7 +607,7 @@ public class PAPServices {
                 responseCode = connection.getResponseCode();
                 // If Connected to PAP then break from the loop and continue
                 // with the Request
-                if (connection.getResponseCode() > 0 || junit) {
+                if (connection.getResponseCode() > 0 || isJunit) {
                     connected = true;
                     break;
                 } else {
@@ -612,7 +616,7 @@ public class PAPServices {
                 }
             } catch (Exception e) {
                 // This means that the PAP is not working
-                if (junit) {
+                if (isJunit) {
                     connected = true;
                     break;
                 }
diff --git a/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/models/PDPResponseTest.java b/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/models/PDPResponseTest.java
new file mode 100644 (file)
index 0000000..a48791c
--- /dev/null
@@ -0,0 +1,82 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2018 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
+ * 
+ *      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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pdp.rest.api.models;
+
+import static org.junit.Assert.assertEquals;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Test;
+import org.onap.policy.api.PolicyConfigStatus;
+import org.onap.policy.api.PolicyDecision;
+import org.onap.policy.api.PolicyResponseStatus;
+import org.onap.policy.api.PolicyType;
+
+public class PDPResponseTest {
+  @Test
+  public void testSetAndGet() {
+    // Test values
+    String message = "testMessage";
+    String config = "testConfig";
+    String policyName = "testPolicyName";
+    String policyVersion = "1.0";
+    PolicyResponseStatus policyResponseStatus = PolicyResponseStatus.ACTION_ADVISED;
+    PolicyConfigStatus policyConfigStatus = PolicyConfigStatus.CONFIG_RETRIEVED;
+    PolicyType type = PolicyType.JSON;
+    Map<String, String> property = new HashMap<String, String>();
+    PolicyDecision policyDecision = PolicyDecision.PERMIT;
+
+    PDPResponse response = new PDPResponse();
+
+    response.setStatus(message, policyResponseStatus, policyConfigStatus);
+    response.setConfig(config);
+    assertEquals(config, response.getConfig());
+    response.setType(type);
+    assertEquals(type, response.getType());
+    response.setPolicyConfigStatus(policyConfigStatus);
+    assertEquals(policyConfigStatus, response.getPolicyConfigStatus());
+    response.setPolicyConfigMessage(message);
+    assertEquals(message, response.getPolicyConfigMessage());
+    response.setProperty(property);
+    assertEquals(property, response.getProperty());
+    response.setPolicyName(policyName);
+    assertEquals(policyName, response.getPolicyName());
+    response.setPolicyVersion(policyVersion);
+    assertEquals(policyVersion, response.getPolicyVersion());
+    response.setMatchingConditions(property);
+    assertEquals(property, response.getMatchingConditions());
+    response.setResponseAttributes(property);
+    assertEquals(property, response.getResponseAttributes());
+    response.setPolicyResponseStatus(policyResponseStatus);
+    assertEquals(policyResponseStatus, response.getPolicyResponseStatus());
+    response.setDecision(policyDecision);
+    assertEquals(policyDecision, response.getDecision());
+    response.setDetails(message);
+    assertEquals(message, response.getDetails());
+    response.setActionAdvised(property);
+    assertEquals(property, response.getActionAdvised());
+    response.setActionTaken(property);
+    assertEquals(property, response.getActionTaken());
+    response.setRequestAttributes(property);
+    assertEquals(property, response.getRequestAttributes());
+    response.setPolicyResponseMessage(message);
+    assertEquals(message, response.getPolicyResponseMessage());
+  }
+}
index 8867a78..23e47f4 100644 (file)
@@ -50,7 +50,7 @@ public class BRMSParamPolicyServiceTest {
                String succeeded = prop.getProperty("xacml.rest.pap.url");
                List<String> paps = Arrays.asList(succeeded.split(","));
                PAPServices.setPaps(paps);
-               PAPServices.junit = true;
+               PAPServices.setJunit(true);
                
                PolicyParameters policyParameters = new PolicyParameters();
         policyParameters.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
@@ -80,7 +80,7 @@ public class BRMSParamPolicyServiceTest {
        @After
        public void tearDown() throws Exception {
                PAPServices.setPaps(null);
-               PAPServices.junit = false;
+               PAPServices.setJunit(false);
        }
 
        @Test
index de884b3..c21bc9c 100644 (file)
@@ -47,7 +47,7 @@ public class ClosedLoopFaultPolicyServiceTest {
                        String succeeded = prop.getProperty("xacml.rest.pap.url");
                        List<String> paps = Arrays.asList(succeeded.split(","));
                        PAPServices.setPaps(paps);
-                       PAPServices.junit = true;
+                       PAPServices.setJunit(true);
                        
                        PolicyParameters policyParameters = new PolicyParameters();
                policyParameters.setPolicyConfigType(PolicyConfigType.ClosedLoop_Fault);
@@ -69,7 +69,7 @@ public class ClosedLoopFaultPolicyServiceTest {
                @After
                public void tearDown() throws Exception {
                        PAPServices.setPaps(null);
-                       PAPServices.junit = false;
+                       PAPServices.setJunit(false);
                }
 
                @Test
index 19bb279..99dc677 100644 (file)
@@ -47,7 +47,7 @@ public class ClosedLoopPMPolicyServiceTest {
                String succeeded = prop.getProperty("xacml.rest.pap.url");
                List<String> paps = Arrays.asList(succeeded.split(","));
                PAPServices.setPaps(paps);
-               PAPServices.junit = true;
+               PAPServices.setJunit(true);
                
                PolicyParameters policyParameters = new PolicyParameters();
         policyParameters.setPolicyConfigType(PolicyConfigType.ClosedLoop_PM);
@@ -69,7 +69,7 @@ public class ClosedLoopPMPolicyServiceTest {
        @After
        public void tearDown() throws Exception {
                PAPServices.setPaps(null);
-               PAPServices.junit = false;
+               PAPServices.setJunit(false);
        }
 
        @Test
index 0fcb002..fe06681 100644 (file)
@@ -49,7 +49,7 @@ public class DecisionPolicyServiceTest {
                String succeeded = prop.getProperty("xacml.rest.pap.url");
                List<String> paps = Arrays.asList(succeeded.split(","));
                PAPServices.setPaps(paps);
-               PAPServices.junit = true;
+               PAPServices.setJunit(true);
                
                PolicyParameters policyParameters = new PolicyParameters();
                policyParameters.setPolicyClass(PolicyClass.Decision);
@@ -94,7 +94,7 @@ public class DecisionPolicyServiceTest {
        @After
        public void tearDown() throws Exception {
                PAPServices.setPaps(null);
-               PAPServices.junit = false;
+               PAPServices.setJunit(false);
        }
 
        @Test
index 4343a50..ccedd75 100644 (file)
@@ -46,7 +46,7 @@ public class FirewallPolicyServiceTest {
                String succeeded = prop.getProperty("xacml.rest.pap.url");
                List<String> paps = Arrays.asList(succeeded.split(","));
                PAPServices.setPaps(paps);
-               PAPServices.junit = true;
+               PAPServices.setJunit(true);
                
                PolicyParameters policyParameters = new PolicyParameters();
         policyParameters.setPolicyConfigType(PolicyConfigType.Firewall); //required
@@ -67,7 +67,7 @@ public class FirewallPolicyServiceTest {
        @After
        public void tearDown() throws Exception {
                PAPServices.setPaps(null);
-               PAPServices.junit = false;
+               PAPServices.setJunit(false);
        }
 
        @Test
index a9301e7..e460a85 100644 (file)
@@ -47,7 +47,7 @@ public class MicroServicesPolicyServiceTest {
                String succeeded = prop.getProperty("xacml.rest.pap.url");
                List<String> paps = Arrays.asList(succeeded.split(","));
                PAPServices.setPaps(paps);
-               PAPServices.junit = true;
+               PAPServices.setJunit(true);
                
                PolicyParameters policyParameters = new PolicyParameters();
         policyParameters.setPolicyConfigType(PolicyConfigType.MicroService);
@@ -69,7 +69,7 @@ public class MicroServicesPolicyServiceTest {
        @After
        public void tearDown() throws Exception {
                PAPServices.setPaps(null);
-               PAPServices.junit = false;
+               PAPServices.setJunit(false);
        }
 
        @Test
index 9d1d139..93fde84 100644 (file)
@@ -40,7 +40,7 @@ public class PAPServicesTest {
 
        @Before
        public void setUp() throws Exception {
-               PAPServices.junit = true;
+               PAPServices.setJunit(true);
                Properties prop = new Properties();
                prop.load(new FileInputStream("src/test/resources/pass.xacml.pdp.properties"));
                String succeeded = prop.getProperty("xacml.rest.pap.url");
@@ -53,7 +53,7 @@ public class PAPServicesTest {
        @After
        public void tearDown() throws Exception {
                PAPServices.setPaps(null);
-               PAPServices.junit = false;
+               PAPServices.setJunit(false);
        }
 
        @Test
diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/adapter/AddressGroupJsonTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/adapter/AddressGroupJsonTest.java
new file mode 100644 (file)
index 0000000..c0aa792
--- /dev/null
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2018 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
+ * 
+ *      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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.rest.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+public class AddressGroupJsonTest {
+  @Test
+  public void testJson() {
+    // Setup test data
+    String value = "testVal";
+    String value2 = "testVal2";
+
+    // Test constructors
+    AddressGroupJson json = new AddressGroupJson();
+    json.setName(value);
+    AddressGroupJson json2 = new AddressGroupJson();
+    json2.setName(value);
+    AddressGroupJson json3 = new AddressGroupJson();
+    json3.setName(value2);
+
+    // Test equals and hash functions
+    assertTrue(json.equals(json2));
+    assertFalse(json.equals(json3));
+    assertFalse(json.equals(null));
+    assertFalse(json.equals(value));
+    assertEquals(217, json.hashCode());
+  }
+}
diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/adapter/ServiceGroupJsonTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/adapter/ServiceGroupJsonTest.java
new file mode 100644 (file)
index 0000000..899a9b2
--- /dev/null
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2018 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
+ * 
+ *      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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.rest.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+public class ServiceGroupJsonTest {
+  @Test
+  public void testJson() {
+    // Setup test data
+    String value = "testVal";
+    String value2 = "testVal2";
+
+    // Test constructors
+    ServiceGroupJson json = new ServiceGroupJson();
+    json.setName(value);
+    ServiceGroupJson json2 = new ServiceGroupJson();
+    json2.setName(value);
+    ServiceGroupJson json3 = new ServiceGroupJson();
+    json3.setName(value2);
+
+    // Test equals and hash functions
+    assertTrue(json.equals(json2));
+    assertFalse(json.equals(json3));
+    assertFalse(json.equals(null));
+    assertFalse(json.equals(value));
+    assertEquals(217, json.hashCode());
+    assertEquals(0, json.getMembers().size());
+  }
+}
index 457df70..9302df3 100644 (file)
@@ -128,11 +128,11 @@ public class PDPPolicyContainerTest {
   @Test
   public void testPDPPolicyItem() {
     PDPPolicyItem item = container.new PDPPolicyItem(policy);
-    assertEquals(item.getId(), "Config_test");
-    assertEquals(item.getName(), "Config_test.1.xml");
-    assertEquals(item.getVersion(), "1.0");
-    assertEquals(item.getDescription(), "testDescription");
+    assertEquals("Config_test", item.getId());
+    assertEquals("Config_test.1.xml", item.getName());
+    assertEquals("1.0", item.getVersion());
+    assertEquals("testDescription", item.getDescription());
     item.setRoot(true);
-    assertEquals(item.getRoot(), true);
+    assertEquals(true, item.getRoot());
   }
 }
diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/util/PolicyItemSetChangeNotifierTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/util/PolicyItemSetChangeNotifierTest.java
new file mode 100644 (file)
index 0000000..9e5ff5d
--- /dev/null
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2017-2018 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
+ * 
+ *      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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.rest.util;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.policy.rest.util.PolicyContainer.ItemSetChangeEvent;
+import org.onap.policy.rest.util.PolicyContainer.ItemSetChangeListener;
+
+public class PolicyItemSetChangeNotifierTest {
+  @Test
+  public void testNotifier() {
+    // Setup test data
+    ItemSetChangeListener listener = Mockito.mock(ItemSetChangeListener.class);
+    ItemSetChangeEvent event = Mockito.mock(ItemSetChangeEvent.class);
+
+    // Test constructor
+    PolicyItemSetChangeNotifier notifier = new PolicyItemSetChangeNotifier();
+    assertNotNull(notifier);
+
+    // Test listener methods
+    try {
+      notifier.addItemSetChangeListener(listener);
+      notifier.fireItemSetChange(event);
+      notifier.removeItemSetChangeListener(listener);
+    } catch (Exception ex) {
+      fail("Not expecting any exceptions: " + ex);
+    }
+  }
+}
diff --git a/ONAP-SDK-APP/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java b/ONAP-SDK-APP/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java
new file mode 100644 (file)
index 0000000..133d4a8
--- /dev/null
@@ -0,0 +1,72 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2018 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
+ * 
+ *      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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.portalapp.conf;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import java.net.MalformedURLException;
+import java.util.Collections;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.portalapp.scheduler.RegistryAdapter;
+import org.onap.portalsdk.core.scheduler.Registerable;
+import org.onap.portalsdk.workflow.services.WorkflowScheduleService;
+import org.quartz.Trigger;
+import org.springframework.context.ApplicationContext;
+import org.springframework.core.io.UrlResource;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+
+public class ExternalAppConfigTest {
+  @Test
+  public void testConfig() throws MalformedURLException {
+    // Setup test data
+    ApplicationContext ctx = Mockito.mock(ApplicationContext.class);
+    UrlResource value = new UrlResource("http://localhost");
+    Mockito.when(ctx.getResource(Mockito.any())).thenReturn(value);
+    ResourceHandlerRegistry registry = new ResourceHandlerRegistry(ctx, null);
+    InterceptorRegistry interceptor = new InterceptorRegistry();
+    RegistryAdapter schedulerRegistryAdapter = new RegistryAdapter();
+    Registerable reg = Mockito.mock(Registerable.class);
+    Mockito.when(reg.getTriggers()).thenReturn(new Trigger[1]);
+    schedulerRegistryAdapter.setRegistry(reg);
+    WorkflowScheduleService workflowScheduleService = Mockito.mock(WorkflowScheduleService.class);
+    schedulerRegistryAdapter.setWorkflowScheduleService(workflowScheduleService);
+    Mockito.when(workflowScheduleService.triggerWorkflowScheduling())
+        .thenReturn(Collections.emptyList());
+
+    // Test constructor
+    ExternalAppConfig config = new ExternalAppConfig();
+    assertNotNull(config);
+
+    // Test set and get
+    config.setApplicationContext(ctx);
+    assertNotNull(config.viewResolver());
+    config.addResourceHandlers(registry);
+    assertNotNull(config.dataAccessService());
+    assertNotNull(config.addTileDefinitions());
+    config.addInterceptors(interceptor);
+    assertNotNull(config.cacheManager());
+    config.setSchedulerRegistryAdapter(schedulerRegistryAdapter);
+    assertNull(config.schedulerFactoryBean());
+    assertNotNull(config.loginStrategy());
+  }
+}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java
new file mode 100644 (file)
index 0000000..f211c6d
--- /dev/null
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2018 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
+ * 
+ *      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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.conf;
+
+import static org.junit.Assert.assertNull;
+import org.hibernate.SessionFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.policy.controller.PolicyController;
+
+public class HibernateSessionTest {
+  @Before
+  public void setup() {
+    PolicyController.setLogdbUrl("testURL");
+    PolicyController.setLogdbUserName("testUser");
+    PolicyController.setLogdbPassword("testPass");
+    PolicyController.setLogdbDialect("testDialect");
+    PolicyController.setLogdbDriver("testDriver");
+  }
+
+  @Test
+  public void testSession() {
+    SessionFactory factory = Mockito.mock(SessionFactory.class);
+    HibernateSession.setSession(factory);
+    assertNull(HibernateSession.getSession());
+  }
+}
index 1bedf09..2b89ee7 100644 (file)
@@ -10,7 +10,6 @@ Policy Engine Platform
    offeredapis.rst
    installation.rst
    policygui.rst
-   modAmsterTemplate.rst
 
 Policy Software Architecture
 ----------------------------
@@ -39,8 +38,9 @@ Policy Platform Tutorials
    deployPDPPAP.rst
    guardpolicy.rst
    guardpdp.rst
-   runningEclipse.rst
    clsimulation.rst
+   modAmsterTemplate.rst
+   runningEclipse.rst
    tutorial_cl.rst
    tutorial_vDNS.rst
    tutorial_VOLTE.rst
index 690dd5d..c08dbb6 100644 (file)
@@ -2,9 +2,9 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. http://creativecommons.org/licenses/by/4.0
 
-****************************************
-Modifying the Amsterdam release template 
-****************************************
+******************************
+Modifying the Release Template
+******************************
 
 .. contents::
     :depth: 3
index 4d26fda..b2bcd88 100644 (file)
@@ -44,7 +44,8 @@ An HTTP 200 message for the GET request will also appear in the console in Eclip
 
     .. image:: RunEcl_pdpd_200.png
 
-.. seealso:: To create a controller and run a control loop please refer to Modifying the Amsterdam release template.
+
+.. seealso:: To create a controller and run a control loop, refer to `Modifying the Release Template  <modAmsterTemplate.html>`_.
 
 
 End of Document
index f73bf89..3395ea7 100644 (file)
@@ -35,22 +35,17 @@ When the processing is done, you get the choice of immediately deploying the pol
 
 Proceed with testing your new policy as described in the specific tutorials:
 
-• vCPE - Tutorial: Testing the vCPE use case in a standalone PDP-D
-• vDNS - Tutorial: Testing the vDNS Use Case in a standalone PDP-D
-• vFW - Tutorial: Testing the vFW flow in a standalone PDP-D
-• VoLTE - Tutorial: Testing the VOLTE Use Case in a standalone PDP-D
-
-If you would like to deploy a control loop in Eclipse from the control loop archetype template:
-
-• Modifying the Amsterdam release template
+• vCPE - `Tutorial: Testing the vCPE use case in a standalone PDP-D <tutorial_vCPE.html>`_
+• vDNS - `Tutorial: Testing the vDNS Use Case in a standalone PDP-D <tutorial_vDNS.html>`_
+• vFW - `Tutorial: Testing the vFW flow in a standalone PDP-D <tutorial_vFW.html>`_
+• VoLTE - `Tutorial: Testing the VOLTE Use Case in a standalone PDP-D <tutorial_VOLTE.html>`_
 
 
+.. seealso:: To deploy a control loop in Eclipse from the control loop archetype template, refer to `Modifying the Release Template  <modAmsterTemplate.html>`_.
 
 
 End of Document
 
 
-
-
 .. SSNote: Wiki page ref. https://wiki.onap.org/display/DW/Tutorial%3A+Generating+and+Testing+your+own+Control+Loop+Operational+Policy+in+a+standalone+PDP-D