summaryrefslogtreecommitdiffstats
path: root/integrity-monitor
diff options
context:
space:
mode:
Diffstat (limited to 'integrity-monitor')
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java266
1 files changed, 134 insertions, 132 deletions
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java
index 12671ec3..fb1df8c7 100644
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java
@@ -3,6 +3,7 @@
* Integrity Monitor
* ================================================================================
* Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2020 Bell Canada. 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.
@@ -83,141 +84,12 @@ public class StateManagementTest extends IntegrityMonitorTestBase {
@Test
public void test() throws Exception {
logger.info("\n\nlogger.infor StateManagementTest: Entering\n\n");
- String resourceName = TEST_RESOURCE_NAME;
// These parameters are in a properties file
try {
- final StateManagement sm = new StateManagement(emf, resourceName);
-
- logger.info("\n??? initial state");
- assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm));
-
- logger.info("\n??? test lock()");
- sm.lock();
- assertEquals("locked,enabled,null,null", makeString(sm));
-
- logger.info("\n??? test unlock()");
- sm.unlock();
- assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm));
-
- logger.info("\n??? test enableNotFailed()");
- sm.enableNotFailed();
- assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm));
-
- logger.info("\n??? test disableFailed()");
- sm.disableFailed();
- assertEquals("unlocked,disabled,failed,null", makeString(sm));
-
- // 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");
- sm.disableFailed();
- sm.lock();
- assertThatThrownBy(sm::promote).isInstanceOf(IntegrityMonitorException.class);
-
- assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm));
-
- // 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");
- assertThatThrownBy(sm::promote).isInstanceOf(IntegrityMonitorException.class);
- assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm));
-
- // 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";
- final StateManagement sm2 = new StateManagement(emf, resourceName);
- sm2.enableNotFailed();
- sm2.unlock();
- assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm2));
- sm2.promote();
- assertEquals(UNLOCKED_ENABLED_NULL_PROVIDINGSERVICE, makeString(sm2));
-
- // P5 If promote() is called while standbyStatus is
- // providingservice, no action is taken
- logger.info("\n??? promote() test case P5");
- sm2.promote();
- assertEquals(UNLOCKED_ENABLED_NULL_PROVIDINGSERVICE, makeString(sm2));
-
- // D1 If demote() is called while standbyStatus is providingservice,
- // the state shall transition to hotstandby
- logger.info("\n??? demote() test case D1");
- sm2.demote();
- assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(sm2));
-
- // D4 If demote() is called while standbyStatus is hotstandby, no
- // action is taken
- logger.info("\n??? demote() test case D4");
- sm2.demote();
- assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(sm2));
-
- // 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";
- final StateManagement sm3 = new StateManagement(emf, resourceName);
- sm3.lock();
- sm3.disableFailed();
- sm3.demote();
- assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm3));
-
- // D5 If demote() is called while standbyStatus is coldstandby, no
- // action is taken
- logger.info("\n??? demote() test case D5");
- sm3.demote();
- assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm3));
-
- // 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";
- final StateManagement sm4 = new StateManagement(emf, resourceName);
- sm4.unlock();
- sm4.enableNotFailed();
- assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm4));
- sm4.demote();
- assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(sm4));
-
- // P1 If promote() is called while standbyStatus is hotstandby, the
- // state shall transition to providingservice.
- logger.info("\n??? promote() test case P1");
- sm4.promote();
- assertEquals(UNLOCKED_ENABLED_NULL_PROVIDINGSERVICE, makeString(sm4));
-
- // State change notification
- logger.info("\n??? State change notification test case 1 - lock()");
- final StateChangeNotifier stateChangeNotifier = new StateChangeNotifier();
- sm.addObserver(stateChangeNotifier);
- sm.lock();
- assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
-
- logger.info("\n??? State change notification test case 2 - unlock()");
- sm.unlock();
- assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
-
- logger.info("\n??? State change notification test case 3 - enabled()");
- sm.enableNotFailed();
- assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
-
- logger.info("\n??? State change notification test case 4 - disableFailed()");
- sm.disableFailed();
- assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
-
- logger.info("\n??? State change notification test case 5 - demote()");
- sm.demote();
- assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
-
- logger.info("\n??? State change notification test case 6 - promote()");
- assertThatThrownBy(sm::promote).isInstanceOf(IntegrityMonitorException.class);
- assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm));
-
+ final StateManagement sm = new StateManagement(emf, TEST_RESOURCE_NAME);
+ test_1(sm);
+ test_2(sm);
} catch (final Exception ex) {
logger.error("Exception: {}", ex.toString());
throw ex;
@@ -226,6 +98,136 @@ public class StateManagementTest extends IntegrityMonitorTestBase {
logger.info("\n\nStateManagementTest: Exit\n\n");
}
+ private void test_1(final StateManagement sm) throws StateManagementException, IntegrityMonitorException {
+ logger.info("\n??? initial state");
+ assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm));
+
+ logger.info("\n??? test lock()");
+ sm.lock();
+ assertEquals("locked,enabled,null,null", makeString(sm));
+
+ logger.info("\n??? test unlock()");
+ sm.unlock();
+ assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm));
+
+ logger.info("\n??? test enableNotFailed()");
+ sm.enableNotFailed();
+ assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm));
+
+ logger.info("\n??? test disableFailed()");
+ sm.disableFailed();
+ assertEquals("unlocked,disabled,failed,null", makeString(sm));
+
+ // 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");
+ sm.disableFailed();
+ sm.lock();
+ assertThatThrownBy(sm::promote).isInstanceOf(IntegrityMonitorException.class);
+
+ assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm));
+
+ // 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");
+ assertThatThrownBy(sm::promote).isInstanceOf(IntegrityMonitorException.class);
+ assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm));
+
+ // 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");
+ final StateManagement sm2 = new StateManagement(emf, "test_resource2");
+ sm2.enableNotFailed();
+ sm2.unlock();
+ assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm2));
+ sm2.promote();
+ assertEquals(UNLOCKED_ENABLED_NULL_PROVIDINGSERVICE, makeString(sm2));
+
+ // P5 If promote() is called while standbyStatus is
+ // providingservice, no action is taken
+ logger.info("\n??? promote() test case P5");
+ sm2.promote();
+ assertEquals(UNLOCKED_ENABLED_NULL_PROVIDINGSERVICE, makeString(sm2));
+
+ // D1 If demote() is called while standbyStatus is providingservice,
+ // the state shall transition to hotstandby
+ logger.info("\n??? demote() test case D1");
+ sm2.demote();
+ assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(sm2));
+
+ // D4 If demote() is called while standbyStatus is hotstandby, no
+ // action is taken
+ logger.info("\n??? demote() test case D4");
+ sm2.demote();
+ assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(sm2));
+ }
+
+ private void test_2(final StateManagement sm) throws StateManagementException, IntegrityMonitorException {
+ // 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");
+ final StateManagement sm3 = new StateManagement(emf, "test_resource3");
+ sm3.lock();
+ sm3.disableFailed();
+ sm3.demote();
+ assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm3));
+
+ // D5 If demote() is called while standbyStatus is coldstandby, no
+ // action is taken
+ logger.info("\n??? demote() test case D5");
+ sm3.demote();
+ assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm3));
+
+ // 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");
+ final StateManagement sm4 = new StateManagement(emf, "test_resource4");
+ sm4.unlock();
+ sm4.enableNotFailed();
+ assertEquals(UNLOCKED_ENABLED_NULL_NULL, makeString(sm4));
+ sm4.demote();
+ assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(sm4));
+
+ // P1 If promote() is called while standbyStatus is hotstandby, the
+ // state shall transition to providingservice.
+ logger.info("\n??? promote() test case P1");
+ sm4.promote();
+ assertEquals(UNLOCKED_ENABLED_NULL_PROVIDINGSERVICE, makeString(sm4));
+
+ // State change notification
+ logger.info("\n??? State change notification test case 1 - lock()");
+ final StateChangeNotifier stateChangeNotifier = new StateChangeNotifier();
+ sm.addObserver(stateChangeNotifier);
+ sm.lock();
+ assertEquals(LOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 2 - unlock()");
+ sm.unlock();
+ assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 3 - enabled()");
+ sm.enableNotFailed();
+ assertEquals(UNLOCKED_ENABLED_NULL_HOTSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 4 - disableFailed()");
+ sm.disableFailed();
+ assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 5 - demote()");
+ sm.demote();
+ assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 6 - promote()");
+ assertThatThrownBy(sm::promote).isInstanceOf(IntegrityMonitorException.class);
+ assertEquals(UNLOCKED_DISABLED_FAILED_COLDSTANDBY, makeString(sm));
+ }
+
@Test(expected = StateManagementException.class)
@SuppressWarnings("unchecked")
public void test_StateManagementInitialization_ThrowException_ifEntityManagerCreateQuerythrowsAnyException()