2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019-2021 Nordix Foundation.
4 * Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
5 * Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 * SPDX-License-Identifier: Apache-2.0
20 * ============LICENSE_END=========================================================
23 package org.onap.policy.models.pdp.persistence.concepts;
25 import static org.assertj.core.api.Assertions.assertThatThrownBy;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertFalse;
28 import static org.junit.Assert.assertNotEquals;
29 import static org.junit.Assert.assertNotNull;
30 import static org.junit.Assert.assertTrue;
32 import java.time.Instant;
33 import java.util.ArrayList;
34 import org.junit.Test;
35 import org.onap.policy.models.pdp.concepts.PdpStatistics;
38 * Test the {@link JpaPdpStatistics} class.
40 public class JpaPdpStatisticsTest {
43 public void testConstructor() {
45 assertThatThrownBy(() -> new JpaPdpStatistics((JpaPdpStatistics) null)).hasMessageContaining("copyConcept");
47 assertThatThrownBy(() -> new JpaPdpStatistics((PdpStatistics) null)).hasMessageContaining("authorativeConcept");
49 assertNotNull(new JpaPdpStatistics());
51 PdpStatistics pdpStat = createPdpStatistics();
52 JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(createPdpStatistics());
53 checkEquals(pdpStat, jpaPdpStat);
55 JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(jpaPdpStat);
56 assertEquals(0, jpaPdpStat2.compareTo(jpaPdpStat));
60 public void testFromAuthorative() {
61 PdpStatistics pdpStat = createPdpStatistics();
62 JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics();
63 jpaPdpStat.fromAuthorative(pdpStat);
64 checkEquals(pdpStat, jpaPdpStat);
68 public void testToAuthorative() {
69 PdpStatistics pdpStat = createPdpStatistics();
70 JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat);
71 PdpStatistics toPdpStat = jpaPdpStat.toAuthorative();
72 assertEquals(pdpStat, toPdpStat);
76 public void testCompareTo() {
77 PdpStatistics pdpStat = createPdpStatistics();
78 JpaPdpStatistics jpaPdpStat1 = new JpaPdpStatistics(pdpStat);
79 assertEquals(-1, jpaPdpStat1.compareTo(null));
81 JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat);
82 assertEquals(0, jpaPdpStat1.compareTo(jpaPdpStat2));
84 PdpStatistics pdpStat3 = createPdpStatistics();
85 pdpStat3.setPdpInstanceId("PDP3");
86 JpaPdpStatistics jpaPdpStat3 = new JpaPdpStatistics(pdpStat3);
87 assertNotEquals(0, jpaPdpStat1.compareTo(jpaPdpStat3));
91 public void testValidate() {
92 JpaPdpStatistics nullKeyJpaPdpStat = new JpaPdpStatistics();
93 assertFalse(nullKeyJpaPdpStat.validate("").isValid());
95 PdpStatistics pdpStat = createPdpStatistics();
96 JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat);
97 assertTrue(jpaPdpStat2.validate("").isValid());
101 public void testClean() {
102 PdpStatistics pdpStat = createPdpStatistics();
103 JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat);
104 jpaPdpStat.setPdpGroupName(" PDPGroup0 ");
105 jpaPdpStat.setPdpSubGroupName(" PDPSubGroup0 ");
107 assertEquals("PDPGroup0", jpaPdpStat.getPdpGroupName());
108 assertEquals("PDPSubGroup0", jpaPdpStat.getPdpSubGroupName());
111 private void checkEquals(PdpStatistics pdpStat, JpaPdpStatistics jpaPdpStat) {
112 assertEquals(pdpStat.getPdpInstanceId(), jpaPdpStat.getKey().getName());
113 assertEquals(pdpStat.getPdpGroupName(), jpaPdpStat.getPdpGroupName());
114 assertEquals(pdpStat.getPdpSubGroupName(), jpaPdpStat.getPdpSubGroupName());
115 assertEquals(pdpStat.getTimeStamp(), jpaPdpStat.getTimeStamp().toInstant());
116 assertEquals(pdpStat.getPolicyDeployCount(), jpaPdpStat.getPolicyDeployCount());
117 assertEquals(pdpStat.getPolicyDeploySuccessCount(), jpaPdpStat.getPolicyDeploySuccessCount());
118 assertEquals(pdpStat.getPolicyDeployFailCount(), jpaPdpStat.getPolicyDeployFailCount());
119 assertEquals(pdpStat.getPolicyUndeployCount(), jpaPdpStat.getPolicyUndeployCount());
120 assertEquals(pdpStat.getPolicyUndeploySuccessCount(), jpaPdpStat.getPolicyUndeploySuccessCount());
121 assertEquals(pdpStat.getPolicyUndeployFailCount(), jpaPdpStat.getPolicyUndeployFailCount());
122 assertEquals(pdpStat.getPolicyExecutedCount(), jpaPdpStat.getPolicyExecutedCount());
123 assertEquals(pdpStat.getPolicyExecutedSuccessCount(), jpaPdpStat.getPolicyExecutedSuccessCount());
124 assertEquals(pdpStat.getPolicyExecutedFailCount(), jpaPdpStat.getPolicyExecutedFailCount());
127 private PdpStatistics createPdpStatistics() {
128 PdpStatistics pdpStat = new PdpStatistics();
129 pdpStat.setPdpInstanceId("PDP0");
130 pdpStat.setPdpGroupName("PDPGroup0");
131 pdpStat.setPdpSubGroupName("PDPSubGroup0");
132 pdpStat.setGeneratedId(10001L);
133 pdpStat.setTimeStamp(Instant.EPOCH);
134 pdpStat.setPolicyDeployCount(3);
135 pdpStat.setPolicyDeploySuccessCount(1);
136 pdpStat.setPolicyDeployFailCount(2);
137 pdpStat.setPolicyUndeployCount(5);
138 pdpStat.setPolicyUndeploySuccessCount(2);
139 pdpStat.setPolicyUndeployFailCount(3);
140 pdpStat.setPolicyExecutedCount(9);
141 pdpStat.setPolicyExecutedSuccessCount(4);
142 pdpStat.setPolicyExecutedFailCount(5);
143 pdpStat.setEngineStats(new ArrayList<>());