summaryrefslogtreecommitdiffstats
path: root/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2018-02-13 09:19:43 -0500
committerJim Hahn <jrh3@att.com>2018-02-13 19:21:55 -0500
commitbf2cc29bf766feabca8ef633926f5fce00a5fe2e (patch)
tree6094d9294378fe7226a3ed7e287dc0381b067fcf /integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java
parent86664073b5a778c56e831d64b3a1883818af0ffe (diff)
Add test coverage to integrity-monitor
Removed "test" from package name. Refactored tests, creating common IntegrityMonitorTestBase. Turned log/print statements into assertEquals in StateTransitionTest. Turned log/print statements into assertEquals in StateManagementTest. Modified AllSeemsWellTest to use IntegrityMonitorTestBase. Modified IntegrityMonitorTest to use IntegrityMonitorTestBase. Added several hooks to IntegrityMonitor to control timers at a finer granularity. Added hooks to IntegrityMonitor to control the FPManager thread. Remove hooks for refresh timer, as property suffices. Added assertException() and assertNoException() methods to IntegrityMonitorTestBase, and then replaced most "try/catch" blocks with calls to those methods. Updated StateManagement to close EntityManagers. Modify pom to remove scope from utils dependency. Fix some comments and remove an unneeded EntityTransaction variable. Change-Id: Ic0789d26f985a40a35f618343fa4e88aa473b2b3 Issue-ID: POLICY-582 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java')
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java315
1 files changed, 0 insertions, 315 deletions
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java
deleted file mode 100644
index a3c0fcd7..00000000
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Integrity Monitor
- * ================================================================================
- * Copyright (C) 2017 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.common.im.test;
-
-import java.util.Properties;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.onap.policy.common.im.StateManagement;
-import org.onap.policy.common.im.StandbyStatusException;
-import org.onap.policy.common.im.StateChangeNotifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/*
- * All JUnits are designed to run in the local development environment
- * where they have write privileges and can execute time-sensitive
- * tasks.
- */
-public class StateManagementTest {
- private static Logger logger = LoggerFactory.getLogger(StateManagementTest.class);
-
- private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
- private static final String DEFAULT_DB_URL = "jdbc:h2:file:./sql/smTest";
- private static final String DEFAULT_DB_USER = "sa";
- private static final String DEFAULT_DB_PWD = "";
-
- private static final String DB_DRIVER = "javax.persistence.jdbc.driver";
- private static final String DB_URL = "javax.persistence.jdbc.url";
- private static final String DB_USER = "javax.persistence.jdbc.user";
- private static final String DB_PWD = "javax.persistence.jdbc.password";
- //
-
- @BeforeClass
- public static void setUpClass() throws Exception {
-
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- }
-
- @After
- public void tearDown() throws Exception {
- }
-
- //@Ignore
- @Test
- public void testJPA() throws Exception {
- logger.info("\n\nlogger.infor StateManagementTest: Entering\n\n");
- String resourceName = "test_resource1";
- boolean standbyExceptionThrown = false;
-
- //These parameters are in a properties file
- EntityManagerFactory emf = null;
- try {
- Properties myProp = new Properties();
- myProp.put(DB_DRIVER, DEFAULT_DB_DRIVER);
- myProp.put(DB_URL, DEFAULT_DB_URL);
- myProp.put(DB_USER, DEFAULT_DB_USER);
- myProp.put(DB_PWD, DEFAULT_DB_PWD);
-
- //Create the data schema and entity manager factory
- emf = Persistence.createEntityManagerFactory("schemaPU", myProp);
-
- StateManagement sm = new StateManagement(emf, resourceName);
- logger.info("\n\ntest lock()");
- displayState(resourceName, sm);
- logger.info("\n??? test lock()");
- logger.info("{} before adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} before opState = {}", resourceName, sm.getOpState());
- logger.info("{} before availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} before standbyStatus= {}", resourceName, sm.getStandbyStatus());
- sm.lock();
- System.out.println("\n\nafter lock()");
- displayState(resourceName, sm);
- logger.info("{} after adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} after opState = {}", resourceName, sm.getOpState());
- logger.info("{} after availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} after standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- logger.info("\n??? test unlock()");
- sm.unlock();
- System.out.println("\n\nafter unlock()");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- logger.info("\n??? test enableNotFailed()");
- sm.enableNotFailed();
- System.out.println("\n\nafter enableNotFailed()");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- logger.info("\n??? test disableFailed()");
- sm.disableFailed();
- System.out.println("\n\nafter disableFailed()");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- // P4 If promote() is called while either the opState is disabled or the adminState is locked,
- // the standbystatus shall transition to coldstandby and a StandbyStatusException shall be thrown
- logger.info("\n??? promote() test case P4");
- try {
- sm.disableFailed();
- sm.lock();
- System.out.println("\n\nafter lock() and disableFailed");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
- sm.promote();
- System.out.println("\n\nafter promote");
- displayState(resourceName, sm);
- } catch(StandbyStatusException ex) {
- standbyExceptionThrown = true;
- logger.info("StandbyStatusException thrown and catched");
- } catch(Exception ex) {
- logger.info("??? Exception: " + ex.toString());
- }
- assert(standbyExceptionThrown);
- assert(sm.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
- standbyExceptionThrown = false;
-
- // P3 If promote() is called while standbyStatus is coldstandby, the state shall not transition
- // and a StandbyStatusException shall be thrown
- logger.info("\n??? promote() test case P3");
- try {
- logger.info(resourceName + " standbyStatus= " + sm.getStandbyStatus());
- sm.promote();
- } catch(StandbyStatusException ex) {
- standbyExceptionThrown = true;
- logger.info("StandbyStatusException thrown and catched");
- } catch(Exception ex) {
- logger.info("??? Exception: " + ex.toString());
- }
- assert(standbyExceptionThrown);
- assert(sm.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
- logger.info("\n\nP3 after promote()");
- displayState(resourceName, sm);
- standbyExceptionThrown = false;
-
- // P2 If promote() is called while the standbyStatus is null and the opState is enabled and adminState is unlocked,
- // the state shall transition to providingservice
- logger.info("\n??? promote() test case P2");
- resourceName = "test_resource2";
- StateManagement sm2 = new StateManagement(emf, resourceName);
- sm2.enableNotFailed();
- sm2.unlock();
- logger.info("\n\nafter sm2.enableNotFailed() and sm2.unlock()");
- displayState(resourceName, sm2);
- logger.info("{} adminState = {}", resourceName, sm2.getAdminState());
- logger.info("{} opState = {}", resourceName, sm2.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm2.getStandbyStatus());
- sm2.promote();
- logger.info("\n\nP2 after sm2.promote");
- displayState(resourceName, sm2);
- assert(sm2.getAdminState().equals(StateManagement.UNLOCKED));
- assert(sm2.getOpState().equals(StateManagement.ENABLED));
- assert(sm2.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE));
-
- // P5 If promote() is called while standbyStatus is providingservice, no action is taken
- logger.info("\n??? promote() test case P5");
- logger.info(resourceName + " standbyStatus= " + sm2.getStandbyStatus());
- sm2.promote();
- logger.info("\n\nP5 after sm2.promote()");
- displayState(resourceName, sm2);
- assert(sm2.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE));
-
- // D1 If demote() is called while standbyStatus is providingservice, the state shall transition to hotstandby
- logger.info("\n??? demote() test case D1");
- logger.info(resourceName + " standbyStatus= " + sm2.getStandbyStatus());
- sm2.demote();
- logger.info("\n\nD1 after sm2.demote()");
- displayState(resourceName, sm2);
- assert(sm2.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
-
- // D4 If demote() is called while standbyStatus is hotstandby, no action is taken
- logger.info("\n??? demote() test case D4");
- logger.info(resourceName + " standbyStatus= " + sm2.getStandbyStatus());
- sm2.demote();
- logger.info("\n\nD4 after sm2.demote()");
- displayState(resourceName, sm2);
- assert(sm2.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
-
- // D3 If demote() is called while standbyStatus is null and adminState is locked or opState is disabled,
- // the state shall transition to coldstandby
- logger.info("\n??? demote() test case D3");
- resourceName = "test_resource3";
- StateManagement sm3 = new StateManagement(emf, resourceName);
- sm3.lock();
- sm3.disableFailed();
- logger.info("\n\nD3 after sm3.lock() and sm3.disableFailed()");
- displayState(resourceName, sm3);
- logger.info("{} adminState = {}", resourceName, sm3.getAdminState());
- logger.info("{} opState = {}", resourceName, sm3.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm3.getStandbyStatus());
- sm3.demote();
- logger.info("\n\nD3 after sm3.demote()");
- displayState(resourceName, sm3);
- assert(sm3.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
-
- // D5 If demote() is called while standbyStatus is coldstandby, no action is taken
- logger.info("\n??? demote() test case D5");
- logger.info(resourceName + " standbyStatus= " + sm3.getStandbyStatus());
- sm3.demote();
- logger.info("\n\nD5 after sm3.demote()");
- displayState(resourceName, sm3);
- assert(sm3.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
-
- // D2 If demote() is called while standbyStatus is null and adminState is unlocked and opState is enabled,
- // the state shall transition to hotstandby
- logger.info("\n??? demote() test case D2");
- resourceName = "test_resource4";
- StateManagement sm4 = new StateManagement(emf, resourceName);
- sm4.unlock();
- sm4.enableNotFailed();
- logger.info("\n\nD2 after sm4.unlock() and sm4.enableNotFailed()");
- displayState(resourceName, sm4);
- logger.info("{} adminState = {}", resourceName, sm4.getAdminState());
- logger.info("{} opState = {}", resourceName, sm4.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm4.getStandbyStatus());
- sm4.demote();
- assert(sm4.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
-
- // P1 If promote() is called while standbyStatus is hotstandby, the state shall transition to providingservice.
- logger.info("\n??? promote() test case P1");
- logger.info(resourceName + " standbyStatus= " + sm4.getStandbyStatus());
- sm4.promote();
- logger.info("\n\nP1 after sm4.promote()");
- displayState(resourceName, sm4);
- assert(sm4.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE));
-
- // State change notification
- logger.info("\n??? State change notification test case 1 - lock()");
- StateChangeNotifier stateChangeNotifier = new StateChangeNotifier();
- sm.addObserver(stateChangeNotifier);
- sm.lock();
-
- logger.info("\n??? State change notification test case 2 - unlock()");
- sm.unlock();
-
- logger.info("\n??? State change notification test case 3 - enabled()");
- sm.enableNotFailed();
-
- logger.info("\n??? State change notification test case 4 - disableFailed()");
- sm.disableFailed();
-
- logger.info("\n??? State change notification test case 5 - demote()");
- sm.demote();
-
- logger.info("\n??? State change notification test case 6 - promote()");
- try {
- sm.promote();
- } catch(Exception ex) {
- logger.info("Exception from promote(): {}", ex.toString());
- }
-
- if (emf.isOpen()) {
- emf.close();
- }
- } catch(Exception ex) {
- logger.error("Exception: {}", ex.toString());
- } finally {
- if (emf.isOpen()) {
- emf.close();
- }
- }
-
- logger.info("\n\nStateManagementTest: Exit\n\n");
- }
-
- private void displayState(String resourceName, StateManagement sm)
- {
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
- }
-}
-