Removing deprecated DMAAP library
[policy/drools-pdp.git] / policy-utils / src / test / java / org / onap / policy / drools / metrics / MetricTest.java
1 /*
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
4  * Modifications Copyright (C) 2024 Nordix Foundation.
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
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  *
18  * SPDX-License-Identifier: Apache-2.0
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.drools.metrics;
23
24
25 import static org.assertj.core.api.Assertions.assertThat;
26 import static org.junit.jupiter.api.Assertions.assertEquals;
27 import static org.junit.jupiter.api.Assertions.assertNotEquals;
28 import static org.junit.jupiter.api.Assertions.assertNotNull;
29 import static org.junit.jupiter.api.Assertions.assertNull;
30
31 import com.openpojo.reflection.PojoClass;
32 import com.openpojo.reflection.impl.PojoClassFactory;
33 import com.openpojo.validation.Validator;
34 import com.openpojo.validation.ValidatorBuilder;
35 import com.openpojo.validation.rule.impl.GetterMustExistRule;
36 import com.openpojo.validation.rule.impl.SetterMustExistRule;
37 import com.openpojo.validation.test.impl.GetterTester;
38 import com.openpojo.validation.test.impl.SetterTester;
39 import java.text.SimpleDateFormat;
40 import java.time.Duration;
41 import java.time.Instant;
42 import java.util.Date;
43 import org.junit.jupiter.api.Test;
44
45 class MetricTest {
46
47     @Test
48     void testPojo() {
49         PojoClass metric = PojoClassFactory.getPojoClass(Metric.class);
50         Validator val = ValidatorBuilder
51                 .create()
52                 .with(new SetterMustExistRule())
53                 .with(new GetterMustExistRule())
54                 .with(new SetterTester())
55                 .with(new GetterTester())
56                 .build();
57         val.validate(metric);
58     }
59
60     @Test
61     void testEndTimeSetter() {
62         Metric metric = new Metric();
63
64         assertNull(metric.getEndTime());
65         metric.setEndTime(null);
66         assertNotNull(metric.getEndTime());
67     }
68
69     @Test
70     void testStartTimeSetter() {
71         Metric metric = new Metric();
72
73         assertNull(metric.getStartTime());
74         metric.setStartTime(null);
75         assertNotNull(metric.getStartTime());
76     }
77
78     @Test
79     void testElapsedTimeSetter() {
80         Metric metric = new Metric();
81
82         assertNull(metric.getElapsedTime());
83         metric.setElapsedTime(null);
84         assertNull(metric.getElapsedTime());
85
86         Instant start = Instant.now();
87         metric.setStartTime(start);
88         metric.setElapsedTime(null);
89         assertNull(metric.getElapsedTime());
90
91         Instant end = Instant.now();
92         metric.setEndTime(end);
93         metric.setElapsedTime(null);
94         assertNotNull(metric.getElapsedTime());
95         Long duration = Duration.between(start, end).toMillis();
96         assertEquals(duration, metric.getElapsedTime());
97     }
98
99     @Test
100     void testInvocationIdSetter() {
101         Metric metric = new Metric();
102
103         assertNull(metric.getInvocationId());
104         metric.setInvocationId(null);
105         assertNotNull(metric.getInvocationId());
106     }
107
108     @Test
109     void testServiceNameSetter() {
110         Metric metric = new Metric();
111
112         assertNull(metric.getServiceName());
113         metric.setServiceName(null);
114         assertEquals(Metric.HOST_TYPE, metric.getServiceName());
115     }
116
117     @Test
118     void testInstanceUuidSetter() {
119         Metric metric = new Metric();
120
121         assertNull(metric.getInstanceUuid());
122         metric.setInstanceUuid(null);
123         assertNotNull(metric.getInstanceUuid());
124     }
125
126     @Test
127     void testRequestIdSetter() {
128         Metric metric = new Metric();
129
130         assertNull(metric.getRequestId());
131         metric.setRequestId(null);
132         assertNotNull(metric.getRequestId());
133     }
134
135     @Test
136     void testPartnerSetter() {
137         Metric metric = new Metric();
138
139         assertNull(metric.getPartner());
140         metric.setPartner(null);
141         assertEquals(Metric.HOST_TYPE, metric.getPartner());
142     }
143
144     @Test
145     void testServerNameSetter() {
146         Metric metric = new Metric();
147
148         assertNull(metric.getServerName());
149         metric.setServerName(null);
150         assertEquals(Metric.HOSTNAME, metric.getServerName());
151     }
152
153     @Test
154     void testServerFqdnSetter() {
155         Metric metric = new Metric();
156
157         assertNull(metric.getServerFqdn());
158         metric.setServerFqdn(null);
159         assertEquals(Metric.HOSTNAME, metric.getServerFqdn());
160     }
161
162     @Test
163     void testVirtualServerNameSetter() {
164         Metric metric = new Metric();
165
166         assertNull(metric.getVirtualServerName());
167         metric.setVirtualServerName(null);
168         assertEquals(Metric.HOSTNAME, metric.getVirtualServerName());
169     }
170
171     @Test
172     void testEqualsToString() {
173         Metric metric1 = new Metric();
174         Metric metric2 = new Metric();
175
176         assertEquals(metric1, metric2);
177
178         metric1.setRequestId(null);
179         assertNotEquals(metric1, metric2);
180
181         metric1.setRequestId("a");
182         metric2.setRequestId("a");
183         assertEquals(metric1, metric2);
184
185         assertThat(metric1.toString()).startsWith("Metric");
186     }
187
188     @Test
189     void testToTimestamp() {
190         Instant now = Instant.now();
191         assertEquals(new SimpleDateFormat(Metric.DATE_FORMAT).format(Date.from(now)), Metric.toTimestamp(now));
192     }
193 }