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
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.drools.metrics;
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;
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;
49 PojoClass metric = PojoClassFactory.getPojoClass(Metric.class);
50 Validator val = ValidatorBuilder
52 .with(new SetterMustExistRule())
53 .with(new GetterMustExistRule())
54 .with(new SetterTester())
55 .with(new GetterTester())
61 void testEndTimeSetter() {
62 Metric metric = new Metric();
64 assertNull(metric.getEndTime());
65 metric.setEndTime(null);
66 assertNotNull(metric.getEndTime());
70 void testStartTimeSetter() {
71 Metric metric = new Metric();
73 assertNull(metric.getStartTime());
74 metric.setStartTime(null);
75 assertNotNull(metric.getStartTime());
79 void testElapsedTimeSetter() {
80 Metric metric = new Metric();
82 assertNull(metric.getElapsedTime());
83 metric.setElapsedTime(null);
84 assertNull(metric.getElapsedTime());
86 Instant start = Instant.now();
87 metric.setStartTime(start);
88 metric.setElapsedTime(null);
89 assertNull(metric.getElapsedTime());
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());
100 void testInvocationIdSetter() {
101 Metric metric = new Metric();
103 assertNull(metric.getInvocationId());
104 metric.setInvocationId(null);
105 assertNotNull(metric.getInvocationId());
109 void testServiceNameSetter() {
110 Metric metric = new Metric();
112 assertNull(metric.getServiceName());
113 metric.setServiceName(null);
114 assertEquals(Metric.HOST_TYPE, metric.getServiceName());
118 void testInstanceUuidSetter() {
119 Metric metric = new Metric();
121 assertNull(metric.getInstanceUuid());
122 metric.setInstanceUuid(null);
123 assertNotNull(metric.getInstanceUuid());
127 void testRequestIdSetter() {
128 Metric metric = new Metric();
130 assertNull(metric.getRequestId());
131 metric.setRequestId(null);
132 assertNotNull(metric.getRequestId());
136 void testPartnerSetter() {
137 Metric metric = new Metric();
139 assertNull(metric.getPartner());
140 metric.setPartner(null);
141 assertEquals(Metric.HOST_TYPE, metric.getPartner());
145 void testServerNameSetter() {
146 Metric metric = new Metric();
148 assertNull(metric.getServerName());
149 metric.setServerName(null);
150 assertEquals(Metric.HOSTNAME, metric.getServerName());
154 void testServerFqdnSetter() {
155 Metric metric = new Metric();
157 assertNull(metric.getServerFqdn());
158 metric.setServerFqdn(null);
159 assertEquals(Metric.HOSTNAME, metric.getServerFqdn());
163 void testVirtualServerNameSetter() {
164 Metric metric = new Metric();
166 assertNull(metric.getVirtualServerName());
167 metric.setVirtualServerName(null);
168 assertEquals(Metric.HOSTNAME, metric.getVirtualServerName());
172 void testEqualsToString() {
173 Metric metric1 = new Metric();
174 Metric metric2 = new Metric();
176 assertEquals(metric1, metric2);
178 metric1.setRequestId(null);
179 assertNotEquals(metric1, metric2);
181 metric1.setRequestId("a");
182 metric2.setRequestId("a");
183 assertEquals(metric1, metric2);
185 assertThat(metric1.toString()).startsWith("Metric");
189 void testToTimestamp() {
190 Instant now = Instant.now();
191 assertEquals(new SimpleDateFormat(Metric.DATE_FORMAT).format(Date.from(now)), Metric.toTimestamp(now));