pull generic code from mdctransaction into metric
[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  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.drools.metrics;
22
23
24 import static org.assertj.core.api.Assertions.assertThat;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotEquals;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertNull;
29
30 import com.openpojo.reflection.PojoClass;
31 import com.openpojo.reflection.impl.PojoClassFactory;
32 import com.openpojo.validation.Validator;
33 import com.openpojo.validation.ValidatorBuilder;
34 import com.openpojo.validation.rule.impl.GetterMustExistRule;
35 import com.openpojo.validation.rule.impl.SetterMustExistRule;
36 import com.openpojo.validation.test.impl.GetterTester;
37 import com.openpojo.validation.test.impl.SetterTester;
38 import java.text.SimpleDateFormat;
39 import java.time.Duration;
40 import java.time.Instant;
41 import java.util.Date;
42 import org.junit.Test;
43
44 public class MetricTest {
45
46     @Test
47     public void testPojo() {
48         PojoClass metric = PojoClassFactory.getPojoClass(Metric.class);
49         Validator val = ValidatorBuilder
50                 .create()
51                 .with(new SetterMustExistRule())
52                 .with(new GetterMustExistRule())
53                 .with(new SetterTester())
54                 .with(new GetterTester())
55                 .build();
56         val.validate(metric);
57     }
58
59     @Test
60     public void testEndTimeSetter() {
61         Metric metric = new Metric();
62
63         assertNull(metric.getEndTime());
64         metric.setEndTime(null);
65         assertNotNull(metric.getEndTime());
66     }
67
68     @Test
69     public void testStartTimeSetter() {
70         Metric metric = new Metric();
71
72         assertNull(metric.getStartTime());
73         metric.setStartTime(null);
74         assertNotNull(metric.getStartTime());
75     }
76
77     @Test
78     public void testElapsedTimeSetter() {
79         Metric metric = new Metric();
80
81         assertNull(metric.getElapsedTime());
82         metric.setElapsedTime(null);
83         assertNull(metric.getElapsedTime());
84
85         Instant start = Instant.now();
86         metric.setStartTime(start);
87         metric.setElapsedTime(null);
88         assertNull(metric.getElapsedTime());
89
90         Instant end = Instant.now();
91         metric.setEndTime(end);
92         metric.setElapsedTime(null);
93         assertNotNull(metric.getElapsedTime());
94         Long duration = Duration.between(start, end).toMillis();
95         assertEquals(duration, metric.getElapsedTime());
96     }
97
98     @Test
99     public void testInvocationIdSetter() {
100         Metric metric = new Metric();
101
102         assertNull(metric.getInvocationId());
103         metric.setInvocationId(null);
104         assertNotNull(metric.getInvocationId());
105     }
106
107     @Test
108     public void testServiceNameSetter() {
109         Metric metric = new Metric();
110
111         assertNull(metric.getServiceName());
112         metric.setServiceName(null);
113         assertEquals(Metric.HOST_TYPE, metric.getServiceName());
114     }
115
116     @Test
117     public void testInstanceUuidSetter() {
118         Metric metric = new Metric();
119
120         assertNull(metric.getInstanceUuid());
121         metric.setInstanceUuid(null);
122         assertNotNull(metric.getInstanceUuid());
123     }
124
125     @Test
126     public void testRequestIdSetter() {
127         Metric metric = new Metric();
128
129         assertNull(metric.getRequestId());
130         metric.setRequestId(null);
131         assertNotNull(metric.getRequestId());
132     }
133
134     @Test
135     public void testPartnerSetter() {
136         Metric metric = new Metric();
137
138         assertNull(metric.getPartner());
139         metric.setPartner(null);
140         assertEquals(Metric.HOST_TYPE, metric.getPartner());
141     }
142
143     @Test
144     public void testServerNameSetter() {
145         Metric metric = new Metric();
146
147         assertNull(metric.getServerName());
148         metric.setServerName(null);
149         assertEquals(Metric.HOSTNAME, metric.getServerName());
150     }
151
152     @Test
153     public void testServerFqdnSetter() {
154         Metric metric = new Metric();
155
156         assertNull(metric.getServerFqdn());
157         metric.setServerFqdn(null);
158         assertEquals(Metric.HOSTNAME, metric.getServerFqdn());
159     }
160
161     @Test
162     public void testVirtualServerNameSetter() {
163         Metric metric = new Metric();
164
165         assertNull(metric.getVirtualServerName());
166         metric.setVirtualServerName(null);
167         assertEquals(Metric.HOSTNAME, metric.getVirtualServerName());
168     }
169
170     @Test
171     public void testEqualsToString() {
172         Metric metric1 = new Metric();
173         Metric metric2 = new Metric();
174
175         assertEquals(metric1, metric2);
176
177         metric1.setRequestId(null);
178         assertNotEquals(metric1, metric2);
179
180         metric1.setRequestId("a");
181         metric2.setRequestId("a");
182         assertEquals(metric1, metric2);
183
184         assertThat(metric1.toString()).startsWith("Metric");
185     }
186
187     @Test
188     public void testToTimestamp() {
189         Instant now = Instant.now();
190         assertEquals(new SimpleDateFormat(Metric.DATE_FORMAT).format(Date.from(now)), Metric.toTimestamp(now));
191     }
192 }