use of com.facebook.buck.testutil.FileHashEntryMatcher in project buck by facebook.
the class RecordingFileHashLoaderTest method testRecordsDirectoryAndRecursivelyRecordsChildren.
@Test
public void testRecordsDirectoryAndRecursivelyRecordsChildren() throws IOException {
// Scenario:
// /a - folder
// /a/b - folder
// /a/b/c - file
// /a/b/d - folder
// /a/e - file
// => entries for all files and folders.
// => entries for dirs /a and /a/b list their direct children
assumeTrue(!Platform.detect().equals(Platform.WINDOWS));
ProjectFilesystem fs = new ProjectFilesystem(projectDir.getRoot().toPath());
Path pathDirA = Files.createDirectories(fs.getRootPath().resolve("a"));
Files.createDirectories(fs.getRootPath().resolve("a/b"));
Files.createFile(fs.getRootPath().resolve("a/b/c"));
Files.createDirectories(fs.getRootPath().resolve("a/b/d"));
Files.createFile(fs.getRootPath().resolve("a/e"));
RecordedFileHashes recordedFileHashes = new RecordedFileHashes(0);
BuildJobStateFileHashes fileHashes = recordedFileHashes.getRemoteFileHashes();
ProjectFileHashCache delegateCacheMock = EasyMock.createMock(ProjectFileHashCache.class);
expect(delegateCacheMock.getFilesystem()).andReturn(fs);
expect(delegateCacheMock.get(anyObject(Path.class))).andReturn(EXAMPLE_HASHCODE).anyTimes();
replay(delegateCacheMock);
RecordingProjectFileHashCache recordingLoader = RecordingProjectFileHashCache.createForCellRoot(delegateCacheMock, recordedFileHashes, new DistBuildConfig(FakeBuckConfig.builder().build()));
recordingLoader.get(fs.relativize(pathDirA));
assertThat(fileHashes.getEntries().size(), // all folders and files
Matchers.equalTo(5));
assertThat(fileHashes.getEntries(), IsCollectionContaining.hasItems(new FileHashEntryMatcher("a", true), new FileHashEntryMatcher("a/b", true), new FileHashEntryMatcher("a/b/c", false), new FileHashEntryMatcher("a/b/d", true), new FileHashEntryMatcher("a/e", false)));
}
Aggregations