public final long getTime() { if (!isInit(DTIME)) return UNKNOWN; return getDateTimeConverter().toJavaTime(dtime & UInt.MAX_VALUE); }
@Test public final void testToJavaTime() { assertThat(instance.toJavaTime(Long.MIN_VALUE), is(minJavaTime)); assertThat(instance.toJavaTime(MIN_DOS_TIME - 1), is(minJavaTime)); assertThat(instance.toJavaTime(MIN_DOS_TIME), is(minJavaTime)); assertThat(instance.toJavaTime(MAX_DOS_TIME), is(maxJavaTime)); assertThat(instance.toJavaTime(MAX_DOS_TIME + 1), is(maxJavaTime)); assertThat(instance.toJavaTime(Long.MAX_VALUE), is(maxJavaTime)); }
@Test public void testGranularity() { final long jTime = System.currentTimeMillis(); final long dTime = instance.toDosTime(jTime); assertThat(instance.toDosTime(jTime - 2000), not(is(dTime))); assertThat(instance.toDosTime(jTime + 2000), not(is(dTime))); assertThat(instance.toJavaTime(instance.toDosTime(jTime - 2000)), not(is(jTime))); assertThat(instance.toJavaTime(instance.toDosTime(jTime + 2000)), not(is(jTime))); } }
@Test public void testRoundTripConversion() { for (long dTime : new long[] { MIN_DOS_TIME, MAX_DOS_TIME, }) { assertThat(instance.toDosTime(instance.toJavaTime(dTime)), is(dTime)); } }
@Test public void testRoundTripTimeConversion() { // Must start with DOS time due to lesser time granularity. long dosTime = ZipEntry.MIN_DOS_TIME; assertEquals(dosTime, DateTimeConverter.JAR.toDosTime(DateTimeConverter.JAR.toJavaTime(dosTime))); dosTime = DateTimeConverter.JAR.toDosTime(System.currentTimeMillis()); assertEquals(dosTime, DateTimeConverter.JAR.toDosTime(DateTimeConverter.JAR.toJavaTime(dosTime))); }
@Test public void testTime() { try { entry.setTime(Long.MIN_VALUE); fail(); } catch (IllegalArgumentException expected) { } try { entry.setTime(UNKNOWN - 1); fail(); } catch (IllegalArgumentException expected) { } assertEquals(UNKNOWN, entry.getTime()); entry.setTime(0); assertEquals(entry.getTime(), DateTimeConverter.JAR.toJavaTime(MIN_DOS_TIME)); entry.setTime(Long.MAX_VALUE); assertEquals(entry.getTime(), DateTimeConverter.JAR.toJavaTime(MAX_DOS_TIME)); entry.setTime(UNKNOWN); assertEquals(UNKNOWN, entry.getTime()); }