@@ -262,6 +262,23 @@ def test_datetime
262
262
assert_equal "2016-02-26 00:00:00" , converter . call ( "2016-02-26 00:00:00" )
263
263
end
264
264
265
+ def test_time
266
+ converter = ValueConverterFactory . new ( SCHEMA_TYPE , 'TIME' ) . create_converter
267
+ assert_equal nil , converter . call ( nil )
268
+ assert_equal "00:03:22.000000" , converter . call ( "00:03:22" )
269
+ assert_equal "15:22:00.000000" , converter . call ( "3:22 PM" )
270
+ assert_equal "03:22:00.000000" , converter . call ( "3:22 AM" )
271
+ assert_equal "00:00:00.000000" , converter . call ( "2016-02-26 00:00:00" )
272
+
273
+ # TimeWithZone doesn't affect any change to the time value
274
+ converter = ValueConverterFactory . new (
275
+ SCHEMA_TYPE , 'TIME' , timezone : 'Asia/Tokyo'
276
+ ) . create_converter
277
+ assert_equal "15:00:01.000000" , converter . call ( "15:00:01" )
278
+
279
+ assert_raise { converter . call ( 'foo' ) }
280
+ end
281
+
265
282
def test_record
266
283
converter = ValueConverterFactory . new ( SCHEMA_TYPE , 'RECORD' ) . create_converter
267
284
assert_equal ( { 'foo' => 'foo' } , converter . call ( %Q[{"foo":"foo"}] ) )
@@ -350,6 +367,24 @@ def test_datetime
350
367
assert_raise { converter . call ( 'foo' ) }
351
368
end
352
369
370
+ def test_time
371
+ converter = ValueConverterFactory . new ( SCHEMA_TYPE , 'TIME' ) . create_converter
372
+ assert_equal nil , converter . call ( nil )
373
+ timestamp = Time . parse ( "2016-02-26 00:00:00.500000 +00:00" )
374
+ expected = "00:00:00.500000"
375
+ assert_equal expected , converter . call ( timestamp )
376
+
377
+ converter = ValueConverterFactory . new (
378
+ SCHEMA_TYPE , 'TIME' , timezone : 'Asia/Tokyo'
379
+ ) . create_converter
380
+ assert_equal nil , converter . call ( nil )
381
+ timestamp = Time . parse ( "2016-02-25 15:00:00.500000 +00:00" )
382
+ expected = "00:00:00.500000"
383
+ assert_equal expected , converter . call ( timestamp )
384
+
385
+ assert_raise { converter . call ( 'foo' ) }
386
+ end
387
+
353
388
def test_record
354
389
assert_raise { ValueConverterFactory . new ( SCHEMA_TYPE , 'RECORD' ) . create_converter }
355
390
end
0 commit comments