*/
public class AllFilePossibilitiesScenarioTest {
@Test
public void testAllPossibilities() throws Exception {
final TransferSettings testConnection = TestConfigUtil.createTestLocalConnection();
final TestClient clientA = new TestClient("A", testConnection);
final TestClient clientB = new TestClient("B", testConnection);
ClientActions.run(clientA,
new Executable() {
@Override
public void execute() throws Exception {
// Nothing.
}
},
new AbstractClientAction[] {
new CreateFileTree(),
new ChangeContentWithoutFileSize(),
new ChangeFileSize(),
new ChangeLastModifiedDate(),
new ChangePermissionsOfFile(),
new ChangePermissionsOfFolder(),
new ChangeSymlinkTarget(),
new ChangeTypeFileToFolder(),
new ChangeTypeFileToSymlinkWithNonExistingTarget(),
new ChangeTypeFileToSymlinkWithTargetFile(),
new ChangeTypeFileToSymlinkWithTargetFolder(),
new ChangeTypeSymlinkWithNonExistingTargetToFile(),
new ChangeTypeSymlinkWithTargetFileToFile(),
new ChangeTypeSymlinkWithTargetFolderToFile(),
new ChangeTypeSymlinkWithNonExistingTargetToFolder(),
new ChangeTypeSymlinkWithTargetFileToFolder(),
new ChangeTypeSymlinkWithTargetFolderToFolder(),
new ChangeTypeFolderToFile(),
new ChangeTypeFolderToSymlinkWithNonExistingTarget(),
new ChangeTypeFolderToSymlinkWithTargetFile(),
new ChangeTypeFolderToSymlinkWithTargetFolder(),
new CreateFile(),
new CreateFolder(),
new CreateSymlinkToFile(),
new CreateSymlinkToFolder(),
new CreateSymlinkToNonExisting(),
new DeleteFile(),
new DeleteFolder(),
new MoveFileToOtherFolder(),
new MoveFileWithinFolder(),
new MoveFolderToOtherFolder(),
new MoveFolderWithinFolder(),
//new LockFile() and new UnlockFile() are not compatible with these tests
},
new Executable() {
@Override
public void execute() throws Exception {
clientA.upWithForceChecksum();
clientB.down();
assertFileListEquals(clientA.getLocalFilesExcludeLockedAndNoRead(), clientB.getLocalFilesExcludeLockedAndNoRead());
assertSqlDatabaseEquals(clientA.getDatabaseFile(), clientB.getDatabaseFile());
}
}
);
clientA.deleteTestData();
clientB.deleteTestData();
}