Mass add newline package (Style Warnings)
[aaf/authz.git] / misc / env / src / test / java / org / onap / aaf / misc / env / util / JU_ChronoTest.java
1 /**\r
2  * ============LICENSE_START====================================================\r
3  * org.onap.aaf\r
4  * ===========================================================================\r
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.\r
6  * ===========================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END====================================================\r
19  *\r
20  */\r
21 \r
22 package org.onap.aaf.misc.env.util;\r
23 \r
24 import static org.junit.Assert.assertEquals;\r
25 \r
26 import java.util.Calendar;\r
27 import java.util.Date;\r
28 import java.util.GregorianCalendar;\r
29 import java.util.TimeZone;\r
30 import java.util.logging.Level;\r
31 import java.util.logging.LogRecord;\r
32 \r
33 import javax.xml.datatype.XMLGregorianCalendar;\r
34 \r
35 import org.junit.Before;\r
36 import org.junit.Test;\r
37 \r
38 public class JU_ChronoTest {\r
39 \r
40     @Before\r
41     public void setUp() throws Exception {\r
42     }\r
43 \r
44     @Test\r
45     public void testFormatter8601() {\r
46         Chrono.Formatter8601 formatter = new Chrono.Formatter8601();\r
47 \r
48         LogRecord record = new LogRecord(Level.WARNING, "Log Record to test log formating");\r
49 \r
50         Date date = new Date(118, 02, 02);\r
51         long time = date.getTime();\r
52 \r
53         record.setMillis(time);\r
54 \r
55         String expectedString = Chrono.dateFmt.format(date) + " " + record.getThreadID() + " " + record.getLevel()\r
56                 + ": " + record.getMessage() + "\n";\r
57         assertEquals(expectedString, formatter.format(record));\r
58     }\r
59 \r
60     @Test\r
61     public void testTimeStampWithDate() {\r
62         Date date = Calendar.getInstance().getTime();\r
63         XMLGregorianCalendar timeStamp = Chrono.timeStamp(date);\r
64 \r
65         GregorianCalendar gc = new GregorianCalendar();\r
66         gc.setTime(date);\r
67         XMLGregorianCalendar expectedCalendar = Chrono.xmlDatatypeFactory.newXMLGregorianCalendar(gc);\r
68 \r
69         assertEquals(expectedCalendar, timeStamp);\r
70     }\r
71 \r
72     @Test\r
73     public void testUTCStamp() {\r
74         final Date date = Calendar.getInstance().getTime();\r
75         String expectedUTCTime = Chrono.utcFmt.format(date);\r
76 \r
77         String stamp = Chrono.utcStamp(date);\r
78 \r
79         assertEquals(stamp, expectedUTCTime);\r
80 \r
81         Date date1 = null;\r
82         assertEquals("", Chrono.utcStamp(date1));\r
83 \r
84         GregorianCalendar gc = null;\r
85         assertEquals(Chrono.utcStamp(gc), "");\r
86         gc = new GregorianCalendar();\r
87         gc.setTime(date);\r
88         assertEquals(Chrono.utcStamp(gc), expectedUTCTime);\r
89 \r
90         XMLGregorianCalendar xgc = null;\r
91         assertEquals(Chrono.utcStamp(xgc), "");\r
92         xgc = Chrono.timeStamp(gc);\r
93         assertEquals(Chrono.utcStamp(xgc), expectedUTCTime);\r
94 \r
95     }\r
96 \r
97     @Test\r
98     public void testDateStamp() {\r
99         final Date date = Calendar.getInstance().getTime();\r
100         String expectedUTCTime = Chrono.dateFmt.format(date);\r
101 \r
102         String stamp = Chrono.dateStamp(date);\r
103 \r
104         assertEquals(stamp, expectedUTCTime);\r
105 \r
106         Date date1 = null;\r
107         assertEquals("", Chrono.dateStamp(date1));\r
108 \r
109         GregorianCalendar gc = null;\r
110         assertEquals(Chrono.dateStamp(gc), "");\r
111         gc = new GregorianCalendar();\r
112         gc.setTime(date);\r
113         assertEquals(Chrono.dateStamp(gc), expectedUTCTime);\r
114 \r
115         XMLGregorianCalendar xgc = null;\r
116         assertEquals(Chrono.dateStamp(xgc), "");\r
117         xgc = Chrono.timeStamp(gc);\r
118         assertEquals(Chrono.dateStamp(xgc), expectedUTCTime);\r
119     }\r
120 \r
121     @Test\r
122     public void testDateTime() {\r
123         final Date date = Calendar.getInstance().getTime();\r
124         date.setTime(1525023883297L);\r
125 \r
126         GregorianCalendar gc = null;\r
127         assertEquals(Chrono.dateTime(gc), "");\r
128         gc = new GregorianCalendar();\r
129         gc.setTime(date);\r
130 \r
131         // String expectedDateTime = "2018-04-29T11:14:43.297" + sign + hourOffSet + ":"\r
132         // + minOffSet;\r
133 \r
134         TimeZone tz = gc.getTimeZone();\r
135         int tz1 = (tz.getRawOffset() + tz.getDSTSavings()) / 0x8CA0;\r
136         int tz1abs = Math.abs(tz1);\r
137         String expectedDateTime = String.format("%04d-%02d-%02dT%02d:%02d:%02d.%03d%c%02d:%02d",\r
138                 gc.get(GregorianCalendar.YEAR), gc.get(GregorianCalendar.MONTH) + 1,\r
139                 gc.get(GregorianCalendar.DAY_OF_MONTH), gc.get(GregorianCalendar.HOUR),\r
140                 gc.get(GregorianCalendar.MINUTE), gc.get(GregorianCalendar.SECOND),\r
141                 gc.get(GregorianCalendar.MILLISECOND), tz1 == tz1abs ? '+' : '-', tz1abs / 100,\r
142                 ((tz1abs - (tz1abs / 100) * 100) * 6) / 10 // Get the "10s", then convert to mins (without losing int\r
143                                                             // place)\r
144         );\r
145 \r
146         String stamp = Chrono.dateTime(date);\r
147 \r
148         assertEquals(stamp, expectedDateTime);\r
149 \r
150         assertEquals(Chrono.dateTime(gc), expectedDateTime);\r
151 \r
152         XMLGregorianCalendar xgc = null;\r
153         assertEquals(Chrono.dateTime(xgc), "");\r
154         xgc = Chrono.timeStamp(gc);\r
155         assertEquals(Chrono.dateTime(xgc), expectedDateTime);\r
156     }\r
157 \r
158     @Test\r
159     public void testDateOnlyStamp() {\r
160         final Date date = Calendar.getInstance().getTime();\r
161         date.setTime(1525023883297L);\r
162 \r
163         String expectedDateTime = Chrono.dateOnlyFmt.format(date);\r
164 \r
165         String stamp = Chrono.dateOnlyStamp(date);\r
166 \r
167         assertEquals(stamp, expectedDateTime);\r
168 \r
169         Date date1 = null;\r
170         assertEquals("", Chrono.dateOnlyStamp(date1));\r
171 \r
172         GregorianCalendar gc = null;\r
173         assertEquals(Chrono.dateOnlyStamp(gc), "");\r
174         gc = new GregorianCalendar();\r
175         gc.setTime(date);\r
176         assertEquals(Chrono.dateOnlyStamp(gc), expectedDateTime);\r
177 \r
178         XMLGregorianCalendar xgc = null;\r
179         assertEquals(Chrono.dateOnlyStamp(xgc), "");\r
180         xgc = Chrono.timeStamp(gc);\r
181         assertEquals(Chrono.dateOnlyStamp(xgc), expectedDateTime);\r
182     }\r
183 \r
184     @Test\r
185     public void testNiceDateStamp() {\r
186         final Date date = Calendar.getInstance().getTime();\r
187         date.setTime(1525023883297L);\r
188 \r
189         String expectedDateTime = Chrono.niceDateFmt.format(date);\r
190 \r
191         String stamp = Chrono.niceDateStamp(date);\r
192 \r
193         assertEquals(stamp, expectedDateTime);\r
194 \r
195         Date date1 = null;\r
196         assertEquals("", Chrono.niceDateStamp(date1));\r
197 \r
198         GregorianCalendar gc = null;\r
199         assertEquals(Chrono.niceDateStamp(gc), "");\r
200         gc = new GregorianCalendar();\r
201         gc.setTime(date);\r
202         assertEquals(Chrono.niceDateStamp(gc), expectedDateTime);\r
203 \r
204         XMLGregorianCalendar xgc = null;\r
205         assertEquals(Chrono.niceDateStamp(xgc), "");\r
206         xgc = Chrono.timeStamp(gc);\r
207         assertEquals(Chrono.niceDateStamp(xgc), expectedDateTime);\r
208     }\r
209 \r
210     @Test\r
211     public void testMoment() {\r
212         final Date date = Calendar.getInstance().getTime();\r
213         date.setTime(1525023883297L);\r
214 \r
215         GregorianCalendar begin = new GregorianCalendar();\r
216         begin.setTimeInMillis(date.getTime());\r
217         begin.set(GregorianCalendar.HOUR, 0);\r
218         begin.set(GregorianCalendar.AM_PM, GregorianCalendar.AM);\r
219         begin.set(GregorianCalendar.MINUTE, 0);\r
220         begin.set(GregorianCalendar.SECOND, 0);\r
221         begin.set(GregorianCalendar.MILLISECOND, 0);\r
222 \r
223         long firstMoment = begin.getTimeInMillis();\r
224 \r
225         begin.set(GregorianCalendar.HOUR, 11);\r
226         begin.set(GregorianCalendar.MINUTE, 59);\r
227         begin.set(GregorianCalendar.SECOND, 59);\r
228         begin.set(GregorianCalendar.MILLISECOND, 999);\r
229         begin.set(GregorianCalendar.AM_PM, GregorianCalendar.PM);\r
230 \r
231         long lastMoment = begin.getTimeInMillis();\r
232 \r
233         assertEquals(firstMoment, Chrono.firstMomentOfDay(date.getTime()));\r
234         assertEquals(lastMoment, Chrono.lastMomentOfDay(date.getTime()));\r
235 \r
236         float timeInMillis = (lastMoment - firstMoment) / 1000000f;\r
237         assertEquals(timeInMillis, Chrono.millisFromNanos(firstMoment, lastMoment), 0);\r
238 \r
239     }\r
240 }\r