505e3f6853c10c7300bebd04b2b6d0ab516322c9
[policy/models.git] / models-pdp / src / test / java / org / onap / policy / models / pdp / persistence / concepts / JpaPdpStatisticsTest.java
1 /*-
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  * SPDX-License-Identifier: Apache-2.0
20  * ============LICENSE_END=========================================================
21  */
22
23 package org.onap.policy.models.pdp.persistence.concepts;
24
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;
31
32 import java.time.Instant;
33 import java.util.ArrayList;
34 import org.junit.Test;
35 import org.onap.policy.models.pdp.concepts.PdpStatistics;
36
37 /**
38  * Test the {@link JpaPdpStatistics} class.
39  */
40 public class JpaPdpStatisticsTest {
41
42     @Test
43     public void testConstructor() {
44
45         assertThatThrownBy(() -> new JpaPdpStatistics((JpaPdpStatistics) null)).hasMessageContaining("copyConcept");
46
47         assertThatThrownBy(() -> new JpaPdpStatistics((PdpStatistics) null)).hasMessageContaining("authorativeConcept");
48
49         assertNotNull(new JpaPdpStatistics());
50
51         PdpStatistics pdpStat = createPdpStatistics();
52         JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(createPdpStatistics());
53         checkEquals(pdpStat, jpaPdpStat);
54
55         JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(jpaPdpStat);
56         assertEquals(0, jpaPdpStat2.compareTo(jpaPdpStat));
57     }
58
59     @Test
60     public void testFromAuthorative() {
61         PdpStatistics pdpStat = createPdpStatistics();
62         JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics();
63         jpaPdpStat.fromAuthorative(pdpStat);
64         checkEquals(pdpStat, jpaPdpStat);
65     }
66
67     @Test
68     public void testToAuthorative() {
69         PdpStatistics pdpStat = createPdpStatistics();
70         JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat);
71         PdpStatistics toPdpStat = jpaPdpStat.toAuthorative();
72         assertEquals(pdpStat, toPdpStat);
73     }
74
75     @Test
76     public void testCompareTo() {
77         PdpStatistics pdpStat = createPdpStatistics();
78         JpaPdpStatistics jpaPdpStat1 = new JpaPdpStatistics(pdpStat);
79         assertEquals(-1, jpaPdpStat1.compareTo(null));
80
81         JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat);
82         assertEquals(0, jpaPdpStat1.compareTo(jpaPdpStat2));
83
84         PdpStatistics pdpStat3 = createPdpStatistics();
85         pdpStat3.setPdpInstanceId("PDP3");
86         JpaPdpStatistics jpaPdpStat3 = new JpaPdpStatistics(pdpStat3);
87         assertNotEquals(0, jpaPdpStat1.compareTo(jpaPdpStat3));
88     }
89
90     @Test
91     public void testValidate() {
92         JpaPdpStatistics nullKeyJpaPdpStat = new JpaPdpStatistics();
93         assertFalse(nullKeyJpaPdpStat.validate("").isValid());
94
95         PdpStatistics pdpStat = createPdpStatistics();
96         JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat);
97         assertTrue(jpaPdpStat2.validate("").isValid());
98     }
99
100     @Test
101     public void testClean() {
102         PdpStatistics pdpStat = createPdpStatistics();
103         JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat);
104         jpaPdpStat.setPdpGroupName(" PDPGroup0 ");
105         jpaPdpStat.setPdpSubGroupName(" PDPSubGroup0 ");
106         jpaPdpStat.clean();
107         assertEquals("PDPGroup0", jpaPdpStat.getPdpGroupName());
108         assertEquals("PDPSubGroup0", jpaPdpStat.getPdpSubGroupName());
109     }
110
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());
125     }
126
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<>());
144         return pdpStat;
145     }
146 }