2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 Nordix Foundation.
4 * Modifications Copyright (C) 2021-2022 Bell Canada. All rights reserved.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.apex.service.engine.main;
24 import static org.junit.Assert.assertEquals;
26 import io.prometheus.client.CollectorRegistry;
27 import org.junit.Before;
28 import org.junit.Test;
29 import org.onap.policy.common.utils.resources.PrometheusUtils;
31 public class ApexPolicyStatisticsManagerTest {
33 private ApexPolicyStatisticsManager statisticsManager;
36 * Starts the statisticsManager object for tests.
40 statisticsManager = new ApexPolicyStatisticsManager();
44 public void testUpdatePolicyDeployCounter() {
45 statisticsManager.updatePolicyDeployCounter(false);
46 assertDeploys(1, 0, 1);
48 statisticsManager.updatePolicyDeployCounter(true);
49 statisticsManager.updatePolicyDeployCounter(true);
50 assertDeploys(3, 2, 1);
51 checkDeploymentsMetrics("deploy");
55 public void testUpdatePolicyExecutedCounter() {
56 statisticsManager.updatePolicyExecutedCounter(true);
57 assertExecuted(1, 1, 0);
59 statisticsManager.updatePolicyExecutedCounter(false);
60 assertExecuted(2, 1, 1);
64 public void testUpdatePolicyUndeployCounter() {
65 statisticsManager.updatePolicyUndeployCounter(false);
66 assertUndeploys(1, 0, 1);
68 statisticsManager.updatePolicyUndeployCounter(true);
69 assertUndeploys(2, 1, 1);
70 checkDeploymentsMetrics("undeploy");
73 private void assertDeploys(long count, long success, long fail) {
74 assertEquals(count, statisticsManager.getPolicyDeployCount());
75 assertEquals(success, statisticsManager.getPolicyDeploySuccessCount());
76 assertEquals(fail, statisticsManager.getPolicyDeployFailCount());
79 private void assertUndeploys(long count, long success, long fail) {
80 assertEquals(count, statisticsManager.getPolicyUndeployCount());
81 assertEquals(success, statisticsManager.getPolicyUndeploySuccessCount());
82 assertEquals(fail, statisticsManager.getPolicyUndeployFailCount());
85 private void assertExecuted(long count, long success, long fail) {
86 assertEquals(count, statisticsManager.getPolicyExecutedCount());
87 assertEquals(success, statisticsManager.getPolicyExecutedSuccessCount());
88 assertEquals(fail, statisticsManager.getPolicyExecutedFailCount());
91 private void checkDeploymentsMetrics(String operation) {
92 final var defaultRegistry = CollectorRegistry.defaultRegistry;
93 Double totalCount = defaultRegistry.getSampleValue("pdpa_policy_deployments_total",
94 new String[]{"operation", "status"}, new String[]{operation, "TOTAL"});
95 Double successCount = defaultRegistry.getSampleValue("pdpa_policy_deployments_total",
96 new String[]{"operation", "status"}, new String[]{operation, "SUCCESS"});
97 Double failCount = defaultRegistry.getSampleValue("pdpa_policy_deployments_total",
98 new String[]{"operation", "status"}, new String[]{operation, "FAIL"});
100 if (PrometheusUtils.DEPLOY_OPERATION.equals(operation)) {
101 assertEquals(totalCount.intValue(), statisticsManager.getPolicyDeployCount());
102 assertEquals(successCount.intValue(), statisticsManager.getPolicyDeploySuccessCount());
103 assertEquals(failCount.intValue(), statisticsManager.getPolicyDeployFailCount());
104 } else if (PrometheusUtils.UNDEPLOY_OPERATION.equals(operation)) {
105 assertEquals(totalCount.intValue(), statisticsManager.getPolicyUndeployCount());
106 assertEquals(successCount.intValue(), statisticsManager.getPolicyUndeploySuccessCount());
107 assertEquals(failCount.intValue(), statisticsManager.getPolicyUndeployFailCount());