diff options
Diffstat (limited to 'services/services-engine/src')
2 files changed, 138 insertions, 1 deletions
diff --git a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManager.java b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManager.java index 0200af37d..f49e8cd22 100644 --- a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManager.java +++ b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManager.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. + * Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,6 +31,9 @@ public class ApexPolicyStatisticsManager { private final AtomicLong policyDeployCount = new AtomicLong(0); private final AtomicLong policyDeploySuccessCount = new AtomicLong(0); private final AtomicLong policyDeployFailCount = new AtomicLong(0); + private final AtomicLong policyUndeployCount = new AtomicLong(0); + private final AtomicLong policyUndeploySuccessCount = new AtomicLong(0); + private final AtomicLong policyUndeployFailCount = new AtomicLong(0); private final AtomicLong policyExecutedCount = new AtomicLong(0); private final AtomicLong policyExecutedSuccessCount = new AtomicLong(0); private final AtomicLong policyExecutedFailCount = new AtomicLong(0); @@ -82,6 +85,19 @@ public class ApexPolicyStatisticsManager { } } + + /** + * Update the policy undeploy count. + */ + public void updatePolicyUndeployCounter(final boolean isSuccessful) { + this.policyUndeployCount.incrementAndGet(); + if (isSuccessful) { + this.policyUndeploySuccessCount.incrementAndGet(); + } else { + this.policyUndeployFailCount.incrementAndGet(); + } + } + /** * Method to update the total policy deploy count. * @@ -144,6 +160,9 @@ public class ApexPolicyStatisticsManager { policyDeployCount.set(0L); policyDeployFailCount.set(0L); policyDeploySuccessCount.set(0L); + policyUndeployCount.set(0L); + policyUndeployFailCount.set(0L); + policyUndeploySuccessCount.set(0L); policyExecutedCount.set(0L); policyExecutedSuccessCount.set(0L); policyExecutedFailCount.set(0L); @@ -172,4 +191,16 @@ public class ApexPolicyStatisticsManager { public long getPolicyExecutedFailCount() { return policyExecutedFailCount.get(); } + + public long getPolicyUndeployCount() { + return policyUndeployCount.get(); + } + + public long getPolicyUndeploySuccessCount() { + return policyUndeploySuccessCount.get(); + } + + public long getPolicyUndeployFailCount() { + return policyUndeployFailCount.get(); + } } diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManagerTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManagerTest.java new file mode 100644 index 000000000..4c541bd12 --- /dev/null +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManagerTest.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2021 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.service.engine.main; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; + +public class ApexPolicyStatisticsManagerTest { + + private ApexPolicyStatisticsManager statisticsManager; + + /** + * Starts the statisticsManager object for tests. + */ + @Before + public void setup() { + statisticsManager = new ApexPolicyStatisticsManager(); + } + + @Test + public void testUpdatePolicyDeployCounter() { + statisticsManager.updatePolicyDeployCounter(false); + assertDeploys(1, 0, 1); + + statisticsManager.updatePolicyDeployCounter(true); + statisticsManager.updatePolicyDeployCounter(true); + assertDeploys(3, 2, 1); + } + + @Test + public void testUpdatePolicyExecutedCounter() { + statisticsManager.updatePolicyExecutedCounter(true); + assertExecuted(1, 1, 0); + + statisticsManager.updatePolicyExecutedCounter(false); + assertExecuted(2, 1, 1); + } + + @Test + public void testUpdatePolicyUndeployCounter() { + statisticsManager.updatePolicyUndeployCounter(false); + assertUndeploys(1, 0, 1); + + statisticsManager.updatePolicyUndeployCounter(true); + assertUndeploys(2, 1, 1); + } + + @Test + public void testResetAllStatistics() { + statisticsManager.updatePolicyDeployCounter(true); + statisticsManager.updatePolicyDeployCounter(true); + statisticsManager.updatePolicyDeployCounter(false); + statisticsManager.updatePolicyUndeployCounter(false); + statisticsManager.updatePolicyExecutedCounter(true); + + assertDeploys(3, 2, 1); + assertUndeploys(1, 0, 1); + assertExecuted(1, 1, 0); + + statisticsManager.resetAllStatistics(); + + assertDeploys(0, 0, 0); + assertUndeploys(0, 0, 0); + assertExecuted(0, 0, 0); + + } + + private void assertDeploys(long count, long success, long fail) { + assertEquals(count, statisticsManager.getPolicyDeployCount()); + assertEquals(success, statisticsManager.getPolicyDeploySuccessCount()); + assertEquals(fail, statisticsManager.getPolicyDeployFailCount()); + } + + private void assertUndeploys(long count, long success, long fail) { + assertEquals(count, statisticsManager.getPolicyUndeployCount()); + assertEquals(success, statisticsManager.getPolicyUndeploySuccessCount()); + assertEquals(fail, statisticsManager.getPolicyUndeployFailCount()); + } + + private void assertExecuted(long count, long success, long fail) { + assertEquals(count, statisticsManager.getPolicyExecutedCount()); + assertEquals(success, statisticsManager.getPolicyExecutedSuccessCount()); + assertEquals(fail, statisticsManager.getPolicyExecutedFailCount()); + } + +} |