@Test public void shouldRangeSeekInOrderDescendingTime() throws Exception { Object o0 = TimeValue.timeRaw( 0, ZoneOffset.ofHours( 0 ) ); Object o1 = TimeValue.timeRaw( 1, ZoneOffset.ofHours( 0 ) ); Object o2 = TimeValue.timeRaw( 2, ZoneOffset.ofHours( 0 ) ); Object o3 = TimeValue.timeRaw( 3, ZoneOffset.ofHours( 0 ) ); Object o4 = TimeValue.timeRaw( 4, ZoneOffset.ofHours( 0 ) ); Object o5 = TimeValue.timeRaw( 5, ZoneOffset.ofHours( 0 ) ); shouldRangeSeekInOrder( IndexOrder.DESCENDING, o0, o1, o2, o3, o4, o5 ); }
@Test public void shouldRangeSeekInOrderDescendingTimeArray() throws Exception { Object o0 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 0, ZoneOffset.ofHours( 0 ) )}; Object o1 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 1, ZoneOffset.ofHours( 0 ) )}; Object o2 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 2, ZoneOffset.ofHours( 0 ) )}; Object o3 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 3, ZoneOffset.ofHours( 0 ) )}; Object o4 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 4, ZoneOffset.ofHours( 0 ) )}; Object o5 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 5, ZoneOffset.ofHours( 0 ) )}; shouldSeekInOrderExactWithRange( IndexOrder.DESCENDING, o0, o1, o2, o3, o4, o5 ); }
@Test public void shouldRangeSeekInOrderAscendingTime() throws Exception { Object o0 = TimeValue.timeRaw( 0, ZoneOffset.ofHours( 0 ) ); Object o1 = TimeValue.timeRaw( 1, ZoneOffset.ofHours( 0 ) ); Object o2 = TimeValue.timeRaw( 2, ZoneOffset.ofHours( 0 ) ); Object o3 = TimeValue.timeRaw( 3, ZoneOffset.ofHours( 0 ) ); Object o4 = TimeValue.timeRaw( 4, ZoneOffset.ofHours( 0 ) ); Object o5 = TimeValue.timeRaw( 5, ZoneOffset.ofHours( 0 ) ); shouldSeekInOrderExactWithRange( IndexOrder.ASCENDING, o0, o1, o2, o3, o4, o5 ); }
@Test public void shouldRangeSeekInOrderAscendingTimeArray() throws Exception { Object o0 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 0, ZoneOffset.ofHours( 0 ) )}; Object o1 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 1, ZoneOffset.ofHours( 0 ) )}; Object o2 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 2, ZoneOffset.ofHours( 0 ) )}; Object o3 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 3, ZoneOffset.ofHours( 0 ) )}; Object o4 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 4, ZoneOffset.ofHours( 0 ) )}; Object o5 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 5, ZoneOffset.ofHours( 0 ) )}; shouldSeekInOrderExactWithRange( IndexOrder.ASCENDING, o0, o1, o2, o3, o4, o5 ); }
@Test public void shouldRangeSeekInOrderDescendingTime() throws Exception { Object o0 = TimeValue.timeRaw( 0, ZoneOffset.ofHours( 0 ) ); Object o1 = TimeValue.timeRaw( 1, ZoneOffset.ofHours( 0 ) ); Object o2 = TimeValue.timeRaw( 2, ZoneOffset.ofHours( 0 ) ); Object o3 = TimeValue.timeRaw( 3, ZoneOffset.ofHours( 0 ) ); Object o4 = TimeValue.timeRaw( 4, ZoneOffset.ofHours( 0 ) ); Object o5 = TimeValue.timeRaw( 5, ZoneOffset.ofHours( 0 ) ); shouldSeekInOrderExactWithRange( IndexOrder.DESCENDING, o0, o1, o2, o3, o4, o5 ); }
@Test public void shouldRangeSeekInOrderAscendingTime() throws Exception { Object o0 = TimeValue.timeRaw( 0, ZoneOffset.ofHours( 0 ) ); Object o1 = TimeValue.timeRaw( 1, ZoneOffset.ofHours( 0 ) ); Object o2 = TimeValue.timeRaw( 2, ZoneOffset.ofHours( 0 ) ); Object o3 = TimeValue.timeRaw( 3, ZoneOffset.ofHours( 0 ) ); Object o4 = TimeValue.timeRaw( 4, ZoneOffset.ofHours( 0 ) ); Object o5 = TimeValue.timeRaw( 5, ZoneOffset.ofHours( 0 ) ); shouldRangeSeekInOrder( IndexOrder.ASCENDING, o0, o1, o2, o3, o4, o5 ); }
@Test public void shouldRangeSeekInOrderAscendingTimeArray() throws Exception { Object o0 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 0, ZoneOffset.ofHours( 0 ) )}; Object o1 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 1, ZoneOffset.ofHours( 0 ) )}; Object o2 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 2, ZoneOffset.ofHours( 0 ) )}; Object o3 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 3, ZoneOffset.ofHours( 0 ) )}; Object o4 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 4, ZoneOffset.ofHours( 0 ) )}; Object o5 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 5, ZoneOffset.ofHours( 0 ) )}; shouldRangeSeekInOrder( IndexOrder.ASCENDING, o0, o1, o2, o3, o4, o5 ); }
@Test public void shouldRangeSeekInOrderDescendingTimeArray() throws Exception { Object o0 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 0, ZoneOffset.ofHours( 0 ) )}; Object o1 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 1, ZoneOffset.ofHours( 0 ) )}; Object o2 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 2, ZoneOffset.ofHours( 0 ) )}; Object o3 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 3, ZoneOffset.ofHours( 0 ) )}; Object o4 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 4, ZoneOffset.ofHours( 0 ) )}; Object o5 = new OffsetTime[]{OffsetTime.of( 10, 10, 10, 5, ZoneOffset.ofHours( 0 ) )}; shouldRangeSeekInOrder( IndexOrder.DESCENDING, o0, o1, o2, o3, o4, o5 ); }
private static void checkLogRecordTimeZone( ConsistencyCheckService service, String[] args, int hoursShift, String timeZoneSuffix ) throws ToolFailureException, IOException { TimeZone.setDefault( TimeZone.getTimeZone( ZoneOffset.ofHours( hoursShift ) ) ); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); PrintStream printStream = new PrintStream( outputStream ); runConsistencyCheckToolWith( service, printStream, args ); String logLine = readLogLine( outputStream ); assertTrue( logLine, logLine.contains( timeZoneSuffix ) ); }
@Test public void shouldReceiveTime() throws Exception { testReceivingOfBoltV2Value( "RETURN time('14:30+0100')", time( 14, 30, 0, 0, ZoneOffset.ofHours( 1 ) ) ); }
@Test public void shouldSendAndReceiveTime() throws Exception { testSendingAndReceivingOfBoltV2Value( time( 19, 22, 44, 100, ZoneOffset.ofHours( -5 ) ) ); }
private void checkStartLogLine( int hoursShift, String timeZoneSuffix ) throws IOException { TimeZone.setDefault( TimeZone.getTimeZone( ZoneOffset.ofHours( hoursShift ) ) ); File storeDir = testDirectory.storeDir( String.valueOf( hoursShift ) ); File databaseDirectory = testDirectory.databaseLayout( storeDir ).databaseDirectory(); GraphDatabaseService database = new TestGraphDatabaseFactory().newEmbeddedDatabaseBuilder( databaseDirectory ) .setConfig( GraphDatabaseSettings.db_timezone, LogTimeZone.SYSTEM.name() ).newGraphDatabase(); database.shutdown(); Path databasePath = storeDir.toPath(); Path debugLog = Paths.get( "logs", "debug.log" ); String debugLogLine = getLogLine( databasePath, debugLog ); assertTrue( debugLogLine, debugLogLine.contains( timeZoneSuffix ) ); }
@Test public void testZoneDateTimeWithHoursZoneOffset() { final ZonedDateTime expectedStartDate = ZonedDateTime.of( 2015, 1, 1, 0, 0, 0, 0, ZoneOffset.ofHours( 5 ) ); saveZoneDateTimeEventWithStartDate( expectedStartDate ); checkSavedZonedDateTimeIsEqual( expectedStartDate ); compareSavedZonedDateTimeWith( expectedStartDate ); }
@Test public void testSimpleDateTime() { MapSettings settings = new MapSettings(); settings.appendProperty(CoreProperties.PROJECT_DATE_PROPERTY, "2017-01-01T12:13:14+0200"); settings.appendProperty(CoreProperties.PROJECT_VERSION_PROPERTY, "version"); Clock clock = mock(Clock.class); ProjectAnalysisInfo info = new ProjectAnalysisInfo(settings.asConfig(), clock); info.start(); OffsetDateTime date = OffsetDateTime.of(2017, 1, 1, 12, 13, 14, 0, ZoneOffset.ofHours(2)); assertThat(info.analysisDate()).isEqualTo(Date.from(date.toInstant())); assertThat(info.analysisVersion()).isEqualTo("version"); }
@Test void shouldGetNanosOfDayUTC() { LocalTime localTime = LocalTime.of( 14, 19, 18, 123999 ); ZoneOffset offset = ZoneOffset.ofHours( -12 ); OffsetTime time = OffsetTime.of( localTime, offset ); long nanosOfDayUTC = TemporalUtil.getNanosOfDayUTC( time ); long expectedNanosOfDayUTC = Duration.ofSeconds( localTime.toSecondOfDay() ) .minus( offset.getTotalSeconds(), SECONDS ) .toNanos(); assertEquals( expectedNanosOfDayUTC + localTime.getNano(), nanosOfDayUTC ); } }
@Test public void offsetDateTimeLosesOffset() { OffsetDateTime dt = OffsetDateTime.now().withOffsetSameInstant(ZoneOffset.ofHours(-7)); h.execute("insert into stuff(ts) values (?)", dt); assertThat(h.createQuery("select ts from stuff").mapTo(OffsetDateTime.class).findOnly().isEqual(dt)).isTrue(); }
@Test public void offsetDateTimeLosesOffset() { OffsetDateTime dt = OffsetDateTime.now().withOffsetSameInstant(ZoneOffset.ofHours(-7)); h.execute("insert into stuff(ts) values (?)", dt); assertThat(dt.isEqual(h.createQuery("select ts from stuff").mapTo(OffsetDateTime.class).findOnly())).isTrue(); }
@Test void shouldComputeDurationBetweenTimes() { assertEquals( duration( 0, 0, 140223, 0 ), durationBetween( time( 11, 30, 52, 0, ofHours( 18 ) ), time( 14, 27, 55, 0, ofHours( -18 ) ) ) ); assertEquals( duration( 0, 0, 10623, 0 ), between( SECONDS, time( 11, 30, 52, 0, UTC ), time( 14, 27, 55, 0, UTC ) ) ); assertEquals( duration( 0, 0, 10623, 0 ), durationBetween( time( 11, 30, 52, 0, UTC ), localTime( 14, 27, 55, 0 ) ) ); assertEquals( duration( 0, 0, 10623, 0 ), durationBetween( time( 11, 30, 52, 0, ofHours( 17 ) ), localTime( 14, 27, 55, 0 ) ) ); assertEquals( duration( 0, 0, -10623, 0 ), durationBetween( localTime( 14, 27, 55, 0 ), time( 11, 30, 52, 0, UTC ) ) ); assertEquals( duration( 0, 0, -10623, 0 ), durationBetween( localTime( 14, 27, 55, 0 ), time( 11, 30, 52, 0, ofHours( 17 ) ) ) ); }
@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 ) ) ); }
@Test void shouldComputeDurationBetweenDateTimeAndTime() { assertEquals( parse( "PT8H-20M" ), durationBetween( datetime( date( 2017, 12, 21 ), time( 6, 52, 11, 0, UTC ) ), localTime( 14, 32, 11, 0 ) ) ); assertEquals( parse( "PT-8H+20M" ), durationBetween( localTime( 14, 32, 11, 0 ), datetime( date( 2017, 12, 21 ), time( 6, 52, 11, 0, UTC ) ) ) ); 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 ) ) ); }