TestFileUtil.createRandomFile(new File(clientA.get("localdir")+"/file1"), 20*1024);
TestFileUtil.createRandomFile(new File(clientA.get("localdir")+"/file2"), 20*1024);
TestFileUtil.createRandomFile(new File(clientA.get("localdir")+"/file3"), 20*1024);
// Round 1: No changes
String[] cliOut = TestCliUtil.runAndCaptureOutput(new CommandLineClient(new String[] {
"--localdir", clientB.get("localdir"),
"down"
}));
assertEquals("Different number of output lines expected.", 3, cliOut.length);
// Round 2: Only added files
new CommandLineClient(new String[] {
"--localdir", clientA.get("localdir"),
"up",
"--force-checksum"
}).start();
cliOut = TestCliUtil.runAndCaptureOutput(new CommandLineClient(new String[] {
"--localdir", clientB.get("localdir"),
"down"
}));
assertEquals("Different number of output lines expected.", 10, cliOut.length);
assertEquals("A file1", cliOut[6]);
assertEquals("A file2", cliOut[7]);
assertEquals("A file3", cliOut[8]);
// Round 3: Modified and deleted files
TestFileUtil.changeRandomPartOfBinaryFile(new File(clientA.get("localdir")+"/file2"));
new File(clientA.get("localdir")+"/file3").delete();
new CommandLineClient(new String[] {
"--localdir", clientA.get("localdir"),
"up",
"--force-checksum"
}).start();
cliOut = TestCliUtil.runAndCaptureOutput(new CommandLineClient(new String[] {
"--localdir", clientB.get("localdir"),
"down"
}));
assertEquals("Different number of output lines expected.", 9, cliOut.length);