@Override public Value asValue() { return LocalTimeValue.localTime( nanoOfDay ); }
/** * @see RandomValues */ public LocalTimeValue nextLocalTimeValue() { return localTime( nextLocalTimeRaw() ); }
@Override public Value decodeForTemporal( long[] valueBlocks, int offset ) { long nanoOfDay = valueIsInlined( valueBlocks[offset] ) ? valueBlocks[offset] >>> 33 : valueBlocks[1 + offset]; checkValidNanoOfDay( nanoOfDay ); return LocalTimeValue.localTime( nanoOfDay ); }
@Override public void writeLocalTime( LocalTime localTime ) throws RuntimeException { builder.append( LocalTimeValue.localTime( localTime ).prettyPrint() ); builder.append( '|' ); }
@Override public void writeLocalTime( LocalTime localTime ) throws RuntimeException { buffer.add( LocalTimeValue.localTime( localTime ) ); }
@Override public void writeLocalTime( LocalTime localTime ) { values.add( localTime( localTime ) ); } };
@Test public void shouldReceiveLocalTime() throws Exception { testReceivingOfBoltV2Value( "RETURN localtime('11:04:35')", localTime( 11, 04, 35, 0 ) ); }
@Test public void shouldSendLocalTime() throws Exception { testSendingOfBoltV2Value( localTime( 2, 35, 10, 1 ) ); }
@Test public void shouldSendAndReceiveLocalTime() throws Exception { testSendingAndReceivingOfBoltV2Value( localTime( 22, 10, 10, 99 ) ); }
@Test public void shouldHandleLocalTime() { // Given LocalTimeValue dvalue = LocalTimeValue.localTime( 1, 2, 3, 4 ); // When dvalue.writeTo( converter ); // Then Object value = converter.value(); assertThat( value, instanceOf( LocalTime.class ) ); assertThat( value, equalTo( dvalue.asObjectCopy() ) ); }
@Test void shouldParseTimeWithHourMinuteSecondAndFractions() { assertEquals( localTime( 14, 5, 17, 123000000 ), parse( "140517.123" ) ); assertEquals( localTime( 14, 5, 17, 1 ), parse( "14:5:17.000000001" ) ); assertEquals( localTime( 4, 15, 4, 0 ), parse( "4:15:4.000" ) ); assertEquals( localTime( 9, 7, 19, 999999999 ), parse( "9:7:19.999999999" ) ); assertEquals( localTime( 3, 4, 1, 123456789 ), parse( "03:04:01.123456789" ) ); }
@Test void shouldParseTimeWithHourAndMinute() { assertEquals( localTime( 14, 5, 0, 0 ), parse( "1405" ) ); assertEquals( localTime( 14, 5, 0, 0 ), parse( "14:5" ) ); assertEquals( localTime( 4, 15, 0, 0 ), parse( "4:15" ) ); assertEquals( localTime( 9, 7, 0, 0 ), parse( "9:7" ) ); assertEquals( localTime( 3, 4, 0, 0 ), parse( "03:04" ) ); }
@Test void shouldParseDate() { assertEquals( localDateTime( date( 2017, 12, 17 ), localTime( 17, 14, 35, 123456789 ) ), parse( "2017-12-17T17:14:35.123456789" ) ); }
@Test void shouldHandleLocalTime() { LocalTimeValue localTime = localTime( 18, 39, 24, 111222777 ); PrettyPrinter printer = new PrettyPrinter(); localTime.writeTo( printer ); assertEquals( "{localTime: \"18:39:24.111222777\"}", printer.value() ); }
@Test public void testLocalTimeTypeSmallNano() { LocalTime time = LocalTimeValue.localTime( 0, 0, 0, 37 ).asObjectCopy(); String key = "dt"; node1.setProperty( key, time ); newTransaction(); Object property = node1.getProperty( key ); assertEquals( time, property ); }
@Test public void testLocalTimeTypeLargeNano() { LocalTime time = LocalTimeValue.localTime( 0, 0, 13, 37 ).asObjectCopy(); String key = "dt"; node1.setProperty( key, time ); newTransaction(); Object property = node1.getProperty( key ); assertEquals( time, property ); }
@Test void shouldComputeDurationBetweenDateAndTime() { assertEquals( parse( "PT14H32M11S" ), durationBetween( date( 2017, 12, 21 ), localTime( 14, 32, 11, 0 ) ) ); assertEquals( parse( "-PT14H32M11S" ), durationBetween( localTime( 14, 32, 11, 0 ), date( 2017, 12, 21 ) ) ); assertEquals( parse( "PT14H32M11S" ), durationBetween( date( 2017, 12, 21 ), time( 14, 32, 11, 0, UTC ) ) ); assertEquals( parse( "-PT14H32M11S" ), durationBetween( time( 14, 32, 11, 0, UTC ), date( 2017, 12, 21 ) ) ); assertEquals( parse( "PT14H32M11S" ), durationBetween( date( 2017, 12, 21 ), time( 14, 32, 11, 0, ofHours( -12 ) ) ) ); assertEquals( parse( "-PT14H32M11S" ), durationBetween( time( 14, 32, 11, 0, ofHours( -12 ) ), date( 2017, 12, 21 ) ) ); }