X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=PolicyEngineUtils%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Futils%2Ftest%2FBackUpMonitorTest.java;fp=PolicyEngineUtils%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Futils%2Ftest%2FBackUpMonitorTest.java;h=5182c5329500a40eaa21386e72ed798a243d1c6b;hp=83362fd0d3603310f0ba01c6976f5a08f8d379df;hb=4d35fd598db1fda83d1986d27035d4ada611fb72;hpb=b5df17d39e93d91ed3f228b077ada296986ff4f6 diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java index 83362fd0d..5182c5329 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017,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 - * + * * 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. @@ -24,6 +24,9 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import com.fasterxml.jackson.core.JsonProcessingException; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -31,15 +34,15 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.TimeUnit; - import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import javax.persistence.PersistenceException; import javax.persistence.Query; - +import org.apache.commons.io.FileUtils; import org.eclipse.persistence.config.PersistenceUnitProperties; import org.junit.After; +import org.junit.AfterClass; import org.junit.Test; import org.onap.policy.api.NotificationType; import org.onap.policy.api.UpdateType; @@ -53,146 +56,151 @@ import org.onap.policy.utils.BackUpMonitor.ResourceNode; import org.onap.policy.utils.BackUpMonitorException; import org.onap.policy.utils.PolicyUtils; -import com.fasterxml.jackson.core.JsonProcessingException; - public class BackUpMonitorTest { + @Test(expected = PersistenceException.class) + public void backUpMonitorTestFail() throws Exception { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); + properties.setProperty("javax.persistence.jdbc.user", "policy_user"); + properties.setProperty("javax.persistence.jdbc.password", ""); + BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", properties, + new DummyBackUpHandler()); + } - @Test (expected = PersistenceException.class) - public void backUpMonitorTestFail() throws Exception{ - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); - properties.setProperty("javax.persistence.jdbc.user", "policy_user"); - properties.setProperty("javax.persistence.jdbc.password", ""); - BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , properties, new DummyBackUpHandler()); - } - - @Test - public void backUpMonitorTestFailNoUser() throws Exception{ - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); - properties.setProperty("javax.persistence.jdbc.user", ""); - properties.setProperty("javax.persistence.jdbc.password", "password"); - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , properties, new DummyBackUpHandler()); - assertNull(bum); - } - - @Test - public void backUpMonitorTestFailNoURL() throws Exception{ - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); - properties.setProperty("javax.persistence.jdbc.url", ""); - properties.setProperty("javax.persistence.jdbc.user", "test"); - properties.setProperty("javax.persistence.jdbc.password", "password"); - properties.setProperty("ping_interval", "500"); - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , properties, new DummyBackUpHandler()); - assertNull(bum); - } - - @Test - public void backUpMonitorTestFailNoDriver() throws Exception{ - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", ""); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); - properties.setProperty("javax.persistence.jdbc.user", "test"); - properties.setProperty("javax.persistence.jdbc.password", "password"); - properties.setProperty("ping_interval", "500"); - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , properties, new DummyBackUpHandler()); - assertNull(bum); - } - - @Test - public void backUpMonitorTestFailNoNode() throws Exception{ - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); - properties.setProperty("javax.persistence.jdbc.user", "test"); - properties.setProperty("javax.persistence.jdbc.password", "password"); - properties.setProperty("ping_interval", ""); - BackUpMonitor bum = BackUpMonitor.getInstance(null, "brms_test" , properties, new DummyBackUpHandler()); - assertNull(bum); - } - - @Test - public void backUpMonitorTestFailNoResource() throws Exception{ - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); - properties.setProperty("javax.persistence.jdbc.user", "test"); - properties.setProperty("javax.persistence.jdbc.password", "password"); - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), null , properties, new DummyBackUpHandler()); - assertNull(bum); - } - - @Test - public void backUpMonitorTestFailNoProperties() throws Exception{ - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , null, new DummyBackUpHandler()); - assertNull(bum); - } - - @Test - public void backUpMonitorTestFailNoHandler() throws Exception{ - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); - properties.setProperty("javax.persistence.jdbc.user", "test"); - properties.setProperty("javax.persistence.jdbc.password", "password"); - properties.setProperty("ping_interval", "500"); - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , properties, null); - assertNull(bum); - } - - @Test - public void backUpMonitorPingError() throws BackUpMonitorException { - Properties properties = new Properties(); - properties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver"); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:file:./sql/xacmlTest"); + @Test + public void backUpMonitorTestFailNoUser() throws Exception { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); + properties.setProperty("javax.persistence.jdbc.user", ""); + properties.setProperty("javax.persistence.jdbc.password", "password"); + BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", + properties, new DummyBackUpHandler()); + assertNull(bum); + } + + @Test + public void backUpMonitorTestFailNoUrl() throws Exception { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); + properties.setProperty("javax.persistence.jdbc.url", ""); + properties.setProperty("javax.persistence.jdbc.user", "test"); + properties.setProperty("javax.persistence.jdbc.password", "password"); + properties.setProperty("ping_interval", "500"); + BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", + properties, new DummyBackUpHandler()); + assertNull(bum); + } + + @Test + public void backUpMonitorTestFailNoDriver() throws Exception { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", ""); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); + properties.setProperty("javax.persistence.jdbc.user", "test"); + properties.setProperty("javax.persistence.jdbc.password", "password"); + properties.setProperty("ping_interval", "500"); + BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", + properties, new DummyBackUpHandler()); + assertNull(bum); + } + + @Test + public void backUpMonitorTestFailNoNode() throws Exception { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); + properties.setProperty("javax.persistence.jdbc.user", "test"); + properties.setProperty("javax.persistence.jdbc.password", "password"); + properties.setProperty("ping_interval", ""); + BackUpMonitor bum = BackUpMonitor.getInstance(null, "brms_test", properties, new DummyBackUpHandler()); + assertNull(bum); + } + + @Test + public void backUpMonitorTestFailNoResource() throws Exception { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); + properties.setProperty("javax.persistence.jdbc.user", "test"); + properties.setProperty("javax.persistence.jdbc.password", "password"); + BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), null, properties, + new DummyBackUpHandler()); + assertNull(bum); + } + + @Test + public void backUpMonitorTestFailNoProperties() throws Exception { + BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", null, + new DummyBackUpHandler()); + assertNull(bum); + } + + @Test + public void backUpMonitorTestFailNoHandler() throws Exception { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver"); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/onap_sdk"); + properties.setProperty("javax.persistence.jdbc.user", "test"); + properties.setProperty("javax.persistence.jdbc.password", "password"); + properties.setProperty("ping_interval", "500"); + BackUpMonitor bum = + BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", properties, null); + assertNull(bum); + } + + @Test + public void backUpMonitorPingError() throws BackUpMonitorException { + Properties properties = new Properties(); + properties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver"); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:mem:backUpMonitorPingError"); properties.setProperty("javax.persistence.jdbc.user", "sa"); properties.setProperty("javax.persistence.jdbc.password", ""); properties.setProperty("ping_interval", "123a"); properties.setProperty(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, "META-INF/persistencePUtest.xml"); - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , properties, new DummyBackUpHandler()); + BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", + properties, new DummyBackUpHandler()); assertTrue(bum.getFlag()); - } - - @Test - public void backUpMonitorMasterTest() throws BackUpMonitorException, InterruptedException, JsonProcessingException { - Properties properties = new Properties(); - // Master Check. Initial Run. - properties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver"); - properties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:file:./sql/xacmlTest"); + } + + @Test + public void backUpMonitorMasterTest() throws BackUpMonitorException, InterruptedException, JsonProcessingException { + Properties properties = new Properties(); + // Master Check. Initial Run. + properties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver"); + properties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:mem:BackupMonitorMasterTest"); properties.setProperty("javax.persistence.jdbc.user", "sa"); properties.setProperty("javax.persistence.jdbc.password", ""); properties.setProperty("ping_interval", "500"); properties.setProperty(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, "META-INF/persistencePUtest.xml"); - BackUpMonitor bum = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test" , properties, new DummyBackUpHandler()); + BackUpMonitor buMonitor = BackUpMonitor.getInstance(BackUpMonitor.ResourceNode.BRMS.toString(), "brms_test", + properties, new DummyBackUpHandler()); createPolicyNotification(); - assertTrue(bum.getFlag()); + assertTrue(buMonitor.getFlag()); // Start a slave check. startSlave(properties); updatePolicyNotification(); TimeUnit.MILLISECONDS.sleep(1500); - assertFalse(bum.getFlag()); + assertFalse(buMonitor.getFlag()); // Get Back to Master test TimeUnit.MILLISECONDS.sleep(2000); - assertTrue(bum.getFlag()); - // No Master check. - changeALL(properties, "SLAVE"); + assertTrue(buMonitor.getFlag()); + // No Master check. + changeAll(properties, "SLAVE"); TimeUnit.MILLISECONDS.sleep(2000); - assertTrue(bum.getFlag()); - // No Master check. - changeALL(properties, "MASTER"); + assertTrue(buMonitor.getFlag()); + // No Master check. + changeAll(properties, "MASTER"); TimeUnit.MILLISECONDS.sleep(2000); - assertTrue(bum.getFlag()); - - } - - private void updatePolicyNotification() { - StdPDPNotification notification = new StdPDPNotification(); + assertTrue(buMonitor.getFlag()); + + } + + private void updatePolicyNotification() { + StdPDPNotification notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.BOTH); - List loadedPolicies = new ArrayList<>(); StdLoadedPolicy loadedPolicy = new StdLoadedPolicy(); loadedPolicy.setPolicyName("com.testing"); loadedPolicy.setUpdateType(UpdateType.UPDATE); @@ -200,6 +208,7 @@ public class BackUpMonitorTest { Map matches = new HashMap<>(); matches.put("test", "test"); loadedPolicy.setMatches(matches); + List loadedPolicies = new ArrayList<>(); loadedPolicies.add(loadedPolicy); notification.setLoadedPolicies(loadedPolicies); List removedPolicies = new ArrayList<>(); @@ -213,7 +222,6 @@ public class BackUpMonitorTest { private void createPolicyNotification() { StdPDPNotification notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.UPDATE); - List loadedPolicies = new ArrayList<>(); StdLoadedPolicy loadedPolicy = new StdLoadedPolicy(); loadedPolicy.setPolicyName("com.testing"); loadedPolicy.setUpdateType(UpdateType.NEW); @@ -221,19 +229,21 @@ public class BackUpMonitorTest { Map matches = new HashMap<>(); matches.put("test", "test"); loadedPolicy.setMatches(matches); + List loadedPolicies = new ArrayList<>(); loadedPolicies.add(loadedPolicy); notification.setLoadedPolicies(loadedPolicies); NotificationStore.recordNotification(notification); } - private void changeALL(Properties properties, String flag) { - EntityManager em = Persistence.createEntityManagerFactory("PolicyEngineUtils", properties).createEntityManager(); + private void changeAll(Properties properties, String flag) { + EntityManager em = + Persistence.createEntityManagerFactory("PolicyEngineUtils", properties).createEntityManager(); EntityTransaction et = em.getTransaction(); et.begin(); Query query = em.createQuery("select b from BackUpMonitorEntity b where b.resourceNodeName = :nn"); query.setParameter("nn", ResourceNode.BRMS.toString()); - for(Object bMValue: query.getResultList()){ - BackUpMonitorEntity bmEntity = (BackUpMonitorEntity) bMValue; + for (Object bmValue : query.getResultList()) { + BackUpMonitorEntity bmEntity = (BackUpMonitorEntity) bmValue; bmEntity.setFlag(flag); bmEntity.setTimeStamp(new Date()); } @@ -242,23 +252,23 @@ public class BackUpMonitorTest { } private void startSlave(Properties properties) throws JsonProcessingException { - EntityManager em = Persistence.createEntityManagerFactory("PolicyEngineUtils", properties).createEntityManager(); - EntityTransaction et = em.getTransaction(); - et.begin(); - Query query = em.createQuery("select b from BackUpMonitorEntity b where b.resourceNodeName = :nn"); - query.setParameter("nn", ResourceNode.BRMS.toString()); - List bMList = query.getResultList(); - BackUpMonitorEntity origBM = (BackUpMonitorEntity) bMList.get(0); - origBM.setFlag("SLAVE"); - origBM.setTimeStamp(new Date()); - BackUpMonitorEntity bMEntity = new BackUpMonitorEntity(); - bMEntity.setResourceNodeName(ResourceNode.BRMS.toString()); - bMEntity.setResourceName("brms_test2"); - bMEntity.setFlag("MASTER"); - bMEntity.setTimeStamp(new Date()); + EntityManager em = + Persistence.createEntityManagerFactory("PolicyEngineUtils", properties).createEntityManager(); + EntityTransaction et = em.getTransaction(); + et.begin(); + Query query = em.createQuery("select b from BackUpMonitorEntity b where b.resourceNodeName = :nn"); + query.setParameter("nn", ResourceNode.BRMS.toString()); + List bmList = query.getResultList(); + BackUpMonitorEntity origBm = (BackUpMonitorEntity) bmList.get(0); + origBm.setFlag("SLAVE"); + origBm.setTimeStamp(new Date()); + BackUpMonitorEntity bmEntity = new BackUpMonitorEntity(); + bmEntity.setResourceNodeName(ResourceNode.BRMS.toString()); + bmEntity.setResourceName("brms_test2"); + bmEntity.setFlag("MASTER"); + bmEntity.setTimeStamp(new Date()); StdPDPNotification notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.UPDATE); - List loadedPolicies = new ArrayList<>(); StdLoadedPolicy loadedPolicy = new StdLoadedPolicy(); loadedPolicy.setPolicyName("com.test"); loadedPolicy.setUpdateType(UpdateType.NEW); @@ -266,17 +276,18 @@ public class BackUpMonitorTest { Map matches = new HashMap<>(); matches.put("test", "test"); loadedPolicy.setMatches(matches); + List loadedPolicies = new ArrayList<>(); loadedPolicies.add(loadedPolicy); notification.setLoadedPolicies(loadedPolicies); - bMEntity.setNotificationRecord(PolicyUtils.objectToJsonString(notification)); - em.persist(bMEntity); - em.persist(origBM); + bmEntity.setNotificationRecord(PolicyUtils.objectToJsonString(notification)); + em.persist(bmEntity); + em.persist(origBm); em.flush(); et.commit(); } - + @Test(expected = BackUpMonitorException.class) - public void testException() throws InterruptedException, BackUpMonitorException{ + public void testException() throws InterruptedException, BackUpMonitorException { BackUpMonitor.stop(); new BackUpMonitorException(); new BackUpMonitorException(new Exception()); @@ -286,7 +297,18 @@ public class BackUpMonitorTest { } @After - public void setup() throws InterruptedException{ - BackUpMonitor.stop(); - } + public void setup() throws InterruptedException { + BackUpMonitor.stop(); + } + + /** + * Cleanup. + * + * @throws IOException Signals that an I/O exception has occurred. + */ + @AfterClass + public static void cleanup() throws IOException { + FileUtils.deleteQuietly(new File("src/test/resources/META-INF/generatedCreate.ddl")); + FileUtils.deleteQuietly(new File("src/test/resources/META-INF/generatedDrop.ddl")); + } }