public TestFile file(Object... path) { try { return new TestFile(this, path); } catch (RuntimeException e) { throw new RuntimeException( String.format( "Could not locate file '%s' relative to '%s'.", Arrays.toString(path), this), e); } }
public TestFile assertIsCopyOf(TestFile other) { assertIsFile(); other.assertIsFile(); assertEquals( String.format("%s is not the same length as %s", this, other), other.length(), this.length()); assertTrue( String.format("%s does not have the same content as %s", this, other), Arrays.equals(getHash("MD5"), other.getHash("MD5"))); return this; }
/** Asserts that this file contains exactly the given set of descendants. */ public TestFile assertHasDescendants(String... descendants) { Set<String> actual = new TreeSet<String>(); assertIsDir(); visit(actual, "", this); Set<String> expected = new TreeSet<String>(Arrays.asList(descendants)); Set<String> extras = new TreeSet<String>(actual); extras.removeAll(expected); Set<String> missing = new TreeSet<String>(expected); missing.removeAll(actual); assertEquals( String.format( "For dir: %s, extra files: %s, missing files: %s, expected: %s", this, extras, missing, expected), expected, actual); return this; }
public ExecOutput exec(Object... args) { return new TestFileHelper(this).execute(Arrays.asList(args), null); }
public void assertContentsHaveChangedSince(Snapshot snapshot) { Snapshot now = snapshot(); assertTrue( String.format("contents of %s have not changed", this), !Arrays.equals(now.hash, snapshot.hash)); }
public void assertHasChangedSince(Snapshot snapshot) { Snapshot now = snapshot(); assertTrue(now.modTime != snapshot.modTime || !Arrays.equals(now.hash, snapshot.hash)); }
public TestFile writelns(String... lines) { return writelns(Arrays.asList(lines)); }