@Override public boolean isEmpty() { checkMetadata(); return metadata.isEmpty(); }
@Test public void windows_without_latest_eol() throws Exception { File tempFile = temp.newFile(); FileUtils.write(tempFile, "foo\r\nbar\r\nbaz", StandardCharsets.UTF_8, true); Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); assertThat(metadata.lines()).isEqualTo(3); assertThat(metadata.nonBlankLines()).isEqualTo(3); assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz")); assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 5, 10); assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 8, 13); assertThat(metadata.isEmpty()).isFalse(); }
@Test public void unix_without_latest_eol() throws Exception { File tempFile = temp.newFile(); FileUtils.write(tempFile, "foo\nbar\nbaz", StandardCharsets.UTF_8, true); Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); assertThat(metadata.lines()).isEqualTo(3); assertThat(metadata.nonBlankLines()).isEqualTo(3); assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz")); assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 8); assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 7, 11); assertThat(metadata.isEmpty()).isFalse(); }
@Test public void testRoundtrip() { Metadata metadata = new Metadata(10, 20, "hash", new int[] {1, 3}, new int[] {2, 4}, 5); assertThat(metadata.isEmpty()).isFalse(); assertThat(metadata.lines()).isEqualTo(10); assertThat(metadata.nonBlankLines()).isEqualTo(20); assertThat(metadata.originalLineStartOffsets()).isEqualTo(new int[] {1, 3}); assertThat(metadata.originalLineEndOffsets()).isEqualTo(new int[] {2, 4}); assertThat(metadata.lastValidOffset()).isEqualTo(5); assertThat(metadata.hash()).isEqualTo("hash"); } }
@Test public void empty_file() throws Exception { File tempFile = temp.newFile(); FileUtils.touch(tempFile); Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); assertThat(metadata.lines()).isEqualTo(1); assertThat(metadata.nonBlankLines()).isEqualTo(0); assertThat(metadata.hash()).isNotEmpty(); assertThat(metadata.originalLineStartOffsets()).containsOnly(0); assertThat(metadata.originalLineEndOffsets()).containsOnly(0); assertThat(metadata.isEmpty()).isTrue(); }
@Override public boolean isEmpty() { checkMetadata(); return metadata.isEmpty(); }