public final void setTime(final long jtime) { final boolean known = UNKNOWN != jtime; if (known) { this.dtime = (int) getDateTimeConverter().toDosTime(jtime); } else { this.dtime = 0; } setInit(DTIME, known); }
@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 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 final void testToDosTime() { try { instance.toDosTime(Long.MIN_VALUE); fail(); } catch (IllegalArgumentException expected) { } try { instance.toDosTime(-1); fail(); } catch (IllegalArgumentException expected) { } assertThat(instance.toDosTime(0), is(MIN_DOS_TIME)); assertThat(instance.toDosTime(minJavaTime - 1), is(MIN_DOS_TIME)); assertThat(instance.toDosTime(minJavaTime), is(MIN_DOS_TIME)); assertThat(instance.toDosTime(maxJavaTime), is(MAX_DOS_TIME)); assertThat(instance.toDosTime(maxJavaTime + 1), is(MAX_DOS_TIME)); assertThat(instance.toDosTime(Long.MAX_VALUE), is(MAX_DOS_TIME)); }
@Test public void testRoundTripConversion() { for (long dTime : new long[] { MIN_DOS_TIME, MAX_DOS_TIME, }) { assertThat(instance.toDosTime(instance.toJavaTime(dTime)), is(dTime)); } }