1 /* 2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package test.sql; 24 25 import java.sql.Time; 26 import java.time.LocalTime; 27 import static org.testng.Assert.*; 28 import org.testng.annotations.AfterClass; 29 import org.testng.annotations.AfterMethod; 30 import org.testng.annotations.BeforeClass; 31 import org.testng.annotations.BeforeMethod; 32 import org.testng.annotations.Test; 33 34 public class TimeTests { 35 36 public TimeTests() { 37 } 38 39 @BeforeClass 40 public static void setUpClass() throws Exception { 41 } 42 43 @AfterClass 44 public static void tearDownClass() throws Exception { 45 } 46 47 @BeforeMethod 48 public void setUpMethod() throws Exception { 49 } 50 51 @AfterMethod 52 public void tearDownMethod() throws Exception { 53 } 54 55 /** 56 * Validate an IllegalArgumentException is thrown for calling getYear 57 */ 58 @Test(expectedExceptions = IllegalArgumentException.class) 59 public void test1() { 60 Time t = Time.valueOf("08:30:59"); 61 t.getYear(); 62 } 63 64 /** 65 * Validate an IllegalArgumentException is thrown for calling getMonth 66 */ 67 @Test(expectedExceptions = IllegalArgumentException.class) 68 public void test2() { 69 Time t = Time.valueOf("08:30:59"); 70 t.getMonth(); 71 } 72 73 /** 74 * Validate an IllegalArgumentException is thrown for calling getDay 75 */ 76 @Test(expectedExceptions = IllegalArgumentException.class) 77 public void test3() { 78 Time t = Time.valueOf("08:30:59"); 79 t.getDay(); 80 } 81 82 /** 83 * Validate an IllegalArgumentException is thrown for calling getDate 84 */ 85 @Test(expectedExceptions = IllegalArgumentException.class) 86 public void test4() { 87 Time t = Time.valueOf("08:30:59"); 88 t.getDate(); 89 } 90 91 /** 92 * Validate an IllegalArgumentException is thrown for calling setYear 93 */ 94 @Test(expectedExceptions = IllegalArgumentException.class) 95 public void test5() { 96 Time t = Time.valueOf("08:30:59"); 97 t.setYear(8); 98 } 99 100 /** 101 * Validate an IllegalArgumentException is thrown for calling setMonth 102 */ 103 @Test(expectedExceptions = IllegalArgumentException.class) 104 public void test6() { 105 Time t = Time.valueOf("08:30:59"); 106 t.setMonth(8); 107 } 108 109 /** 110 * Validate an IllegalArgumentException is thrown for calling setDate 111 */ 112 @Test(expectedExceptions = IllegalArgumentException.class) 113 public void test7() { 114 Time t = Time.valueOf("08:30:59"); 115 t.setDate(30); 116 } 117 118 /** 119 * Validate an IllegalArgumentException is thrown for calling getDate 120 */ 121 @Test(expectedExceptions = IllegalArgumentException.class) 122 public void test8() { 123 Time t = Time.valueOf("08:30:59"); 124 t.getDate(); 125 } 126 127 /** 128 * Validate that a Time made from a toLocalTime() LocalTime are equal 129 */ 130 @Test 131 public void test13() { 132 Time t = Time.valueOf("08:30:59"); 133 Time t2 = Time.valueOf(t.toLocalTime()); 134 assertTrue(t.equals(t2), "Error t != t2"); 135 } 136 137 /** 138 * Validate that a Time LocalTime value, made from a LocalTime are equal 139 */ 140 @Test 141 public void test14() { 142 LocalTime lt = LocalTime.of(8, 30, 59); 143 Time t = Time.valueOf(lt); 144 System.out.println("lt=" + lt + ",t=" + t.toLocalTime()); 145 assertTrue(lt.equals(t.toLocalTime()), 146 "Error LocalTime values are not equal"); 147 } 148 149 /** 150 * Validate an NPE occurs when a null LocalDate is passed to valueOf 151 */ 152 @Test(expectedExceptions = NullPointerException.class) 153 public void test15() throws Exception { 154 LocalTime ld = null; 155 Time.valueOf(ld); 156 } 157 158 /** 159 * Validate an UnsupportedOperationException occurs when toInstant() is 160 * called 161 */ 162 @Test(expectedExceptions = UnsupportedOperationException.class) 163 public void test16() throws Exception { 164 Time t = new Time(System.currentTimeMillis()); 165 t.toInstant(); 166 } 167 168 /** 169 * Validate that a Time made from valueOf(String) returns the same String 170 * from Time.toString(); 171 */ 172 @Test 173 public void test17() { 174 String time = "08:30:59"; 175 Time t = Time.valueOf(time); 176 assertTrue(time.equals(t.toString()), "Error t != t2"); 177 } 178 179 /** 180 * Validate that two Time objects are equal when one is created from the 181 * toString() of the other 182 */ 183 @Test 184 public void test18() { 185 Time t = Time.valueOf("08:30:59"); 186 Time t2 = Time.valueOf(t.toString()); 187 assertTrue(t.equals(t2) && t2.equals(t), "Error t != t2"); 188 } 189 190 /** 191 * Validate that two Time values one created using valueOf and another via a 192 * constructor are equal 193 */ 194 @Test 195 public void test19() { 196 Time t = Time.valueOf("08:30:59"); 197 Time t2 = new Time(8, 30, 59); 198 assertTrue(t.equals(t2) && t2.equals(t), "Error t != t2"); 199 } 200 201 /** 202 * Validate that two Time values one created using valueOf and another via a 203 * constructor are equal 204 */ 205 @Test 206 public void test20() { 207 Time t = Time.valueOf("08:30:59"); 208 Time t2 = new Time(t.getTime()); 209 assertTrue(t.equals(t2) && t2.equals(t), "Error t != t2"); 210 } 211 212 /** 213 * Validate an IllegalArgumentException is thrown for calling valueOf with a 214 * null String 215 */ 216 @Test(expectedExceptions = IllegalArgumentException.class) 217 public void test21() { 218 String time = null; 219 Time t = Time.valueOf(time); 220 221 } 222 223 /** 224 * Validate an IllegalArgumentException is thrown for an invalid Time string 225 */ 226 @Test(expectedExceptions = IllegalArgumentException.class) 227 public void test22() throws Exception { 228 Time.valueOf("1961-08-30"); 229 } 230 231 /** 232 * Validate an IllegalArgumentException is thrown for an invalid Time string 233 */ 234 @Test(expectedExceptions = IllegalArgumentException.class) 235 public void test23() throws Exception { 236 Time.valueOf("8:"); 237 } 238 239 /** 240 * Validate an IllegalArgumentException is thrown for an invalid Time string 241 */ 242 @Test(expectedExceptions = IllegalArgumentException.class) 243 public void test24() throws Exception { 244 Time.valueOf("a:b:c"); 245 } 246 247 /** 248 * Validate an IllegalArgumentException is thrown for an invalid Time string 249 */ 250 @Test(expectedExceptions = IllegalArgumentException.class) 251 public void test25() throws Exception { 252 Time.valueOf("08:10"); 253 } 254 255 /** 256 * Validate an IllegalArgumentException is thrown for an invalid Time string 257 */ 258 @Test(expectedExceptions = IllegalArgumentException.class) 259 public void test26() throws Exception { 260 Time.valueOf("08:10:10:10"); 261 } 262 263 /** 264 * Validate an IllegalArgumentException is thrown for an invalid Time string 265 */ 266 @Test(expectedExceptions = IllegalArgumentException.class) 267 public void test27() throws Exception { 268 Time.valueOf("08:10:Batman"); 269 } 270 271 /** 272 * Validate that Time.after() returns false when same date is compared 273 */ 274 @Test 275 public void test28() { 276 Time t = Time.valueOf("08:30:59"); 277 assertFalse(t.after(t), "Error t.after(t) = true"); 278 } 279 280 /** 281 * Validate that Time.after() returns true when later date is compared to 282 * earlier date 283 */ 284 @Test 285 public void test29() { 286 Time t = Time.valueOf("08:30:59"); 287 Time t2 = new Time(System.currentTimeMillis()); 288 assertTrue(t2.after(t), "Error t2.after(t) = false"); 289 } 290 291 /** 292 * Validate that Time.after() returns false when earlier date is compared to 293 * itself 294 */ 295 @Test 296 public void test30() { 297 Time t = Time.valueOf("08:30:59"); 298 Time t2 = new Time(t.getTime()); 299 assertFalse(t.after(t2), "Error t.after(t2) = true"); 300 assertFalse(t2.after(t), "Error t2.after(t) = true"); 301 } 302 303 /** 304 * Validate that Time.before() returns false when same date is compared 305 */ 306 @Test 307 public void test31() { 308 Time t = Time.valueOf("08:30:59"); 309 assertFalse(t.before(t), "Error t.before(t) = true"); 310 } 311 312 /** 313 * Validate that Time.before() returns true when earlier date is compared to 314 * later date 315 */ 316 @Test 317 public void test32() { 318 Time t = Time.valueOf("08:30:59"); 319 Time t2 = new Time(System.currentTimeMillis()); 320 assertTrue(t.before(t2), "Error t.before(t2) = false"); 321 } 322 323 /** 324 * Validate that Time.before() returns false when earlier date is compared 325 * to itself 326 */ 327 @Test 328 public void test33() { 329 Time t = Time.valueOf("08:30:59"); 330 Time t2 = new Time(t.getTime()); 331 assertFalse(t.before(t2), "Error t.after(t2) = true"); 332 assertFalse(t2.before(t), "Error t2.after(t) = true"); 333 } 334 335 /** 336 * Validate that Time.compareTo returns 0 when both Date objects are the 337 * same 338 */ 339 @Test 340 public void test34() { 341 Time t = Time.valueOf("08:30:59"); 342 assertTrue(t.compareTo(t) == 0, "Error t.compareTo(t) !=0"); 343 } 344 345 /** 346 * Validate thatTime.compareTo returns 0 when both Time objects are the same 347 */ 348 @Test 349 public void test35() { 350 Time t = Time.valueOf("08:30:59"); 351 Time t2 = new Time(t.getTime()); 352 assertTrue(t.compareTo(t2) == 0, "Error t.compareTo(t2) !=0"); 353 } 354 355 /** 356 * Validate that Time.compareTo returns 1 when comparing a later Time to an 357 * earlier Time 358 */ 359 @Test 360 public void test36() { 361 Time t = Time.valueOf("08:30:59"); 362 Time t2 = new Time(t.getTime() + 1); 363 assertTrue(t2.compareTo(t) == 1, "Error t2.compareTo(t) !=1"); 364 } 365 366 /** 367 * Validate thatTime.compareTo returns 1 when comparing a later Time to an 368 * earlier Time 369 */ 370 @Test 371 public void test37() { 372 Time t = Time.valueOf("08:30:59"); 373 Time t2 = new Time(t.getTime() + 1); 374 assertTrue(t.compareTo(t2) == -1, "Error t.compareTo(t2) != -1"); 375 } 376 377 /** 378 * Validate that two Time values where one have omitted leading 0s 379 * for seconds are equal 380 */ 381 @Test 382 public void test38() throws Exception { 383 String testTime = "10:50:0"; 384 String expectedTime = "10:50:00"; 385 Time t = Time.valueOf(testTime); 386 Time t2 = Time.valueOf(expectedTime); 387 assertEquals(t, t2, "Error t1 != t2"); 388 } 389 390 /** 391 * Validate that two Time values where one have omitted leading 0s 392 * for minutes are equal 393 */ 394 @Test 395 public void test39() throws Exception { 396 String testTime = "10:5:01"; 397 String expectedTime = "10:05:01"; 398 Time t = Time.valueOf(testTime); 399 Time t2 = Time.valueOf(expectedTime); 400 assertEquals(t, t2, "Error t1 != t2"); 401 } 402 403 /** 404 * Validate that two Time values where one have omitted leading 0s 405 * for hour are equal 406 */ 407 @Test 408 public void test40() throws Exception { 409 String testTime = "4:15:01"; 410 String expectedTime = "04:15:01"; 411 Time t = Time.valueOf(testTime); 412 Time t2 = Time.valueOf(expectedTime); 413 assertEquals(t, t2, "Error t1 != t2"); 414 } 415 416 /** 417 * Validate an IllegalArgumentException is thrown for an invalid Time string 418 */ 419 @Test(expectedExceptions = IllegalArgumentException.class) 420 public void test41() throws Exception { 421 Time.valueOf("08:10:"); 422 } 423 424 }