use of org.syncany.config.Config in project syncany by syncany.
the class TestConfigUtil method createDummyConfig.
public static Config createDummyConfig() throws Exception {
ConfigTO configTO = new ConfigTO();
configTO.setMachineName("dummymachine");
RepoTO repoTO = new RepoTO();
repoTO.setTransformers(null);
repoTO.setChunkerTO(createFixedChunkerTO());
repoTO.setMultiChunker(createZipMultiChunkerTO());
return new Config(new File("/dummy"), configTO, repoTO);
}
use of org.syncany.config.Config in project syncany by syncany.
the class FileSystemActionReconciliatorTest method testFileSystemActionReconDeleteNonExistingFolder.
@Test
public void testFileSystemActionReconDeleteNonExistingFolder() throws Exception {
// Setup
TransferSettings testConnection = TestConfigUtil.createTestLocalConnection();
TestClient clientA = new TestClient("A", testConnection);
Config testConfigA = clientA.getConfig();
// - Create first database version
clientA.createNewFolder("new folder/some subfolder");
clientA.upWithForceChecksum();
// Delete this!
clientA.deleteFile("new folder/some subfolder");
// - Create new version (delete folder)
TestSqlDatabase sqlDatabaseA = new TestSqlDatabase(testConfigA);
PartialFileHistory folderFileHistoryWithLastVersion = sqlDatabaseA.getFileHistoryWithLastVersion("new folder/some subfolder");
FileVersion deletedFolderVersion = folderFileHistoryWithLastVersion.getLastVersion().clone();
deletedFolderVersion.setStatus(FileStatus.DELETED);
deletedFolderVersion.setVersion(deletedFolderVersion.getVersion() + 1);
PartialFileHistory deletedFolderVersionHistory = new PartialFileHistory(folderFileHistoryWithLastVersion.getFileHistoryId());
deletedFolderVersionHistory.addFileVersion(deletedFolderVersion);
DatabaseVersion winnersDatabaseVersion = TestDatabaseUtil.createDatabaseVersion(sqlDatabaseA.getLastDatabaseVersionHeader());
winnersDatabaseVersion.addFileHistory(deletedFolderVersionHistory);
// - Create memory database with this version
MemoryDatabase winnersDatabase = new MemoryDatabase();
winnersDatabase.addDatabaseVersion(winnersDatabaseVersion);
// Run! Finally!
DownOperationResult outDownOperationResult = new DownOperationResult();
FileSystemActionReconciliator fileSystemActionReconciliator = new FileSystemActionReconciliator(testConfigA, outDownOperationResult.getChangeSet());
List<FileSystemAction> fileSystemActions = fileSystemActionReconciliator.determineFileSystemActions(winnersDatabase);
assertNotNull(fileSystemActions);
assertEquals(0, fileSystemActions.size());
// Tear down
clientA.deleteTestData();
}
use of org.syncany.config.Config in project syncany by syncany.
the class FileVersionComparatorTest method testCaptureFilePropertiesFromFileVersion.
@Test
public void testCaptureFilePropertiesFromFileVersion() throws Exception {
// Setup
Config config = TestConfigUtil.createTestLocalConfig();
FileVersionComparator versionComparator = new FileVersionComparator(config.getLocalDir(), config.getChunker().getChecksumAlgorithm());
FileVersion fileVersion = new FileVersion();
fileVersion.setVersion(3L);
fileVersion.setChecksum(new FileChecksum(new byte[] { 0x11, 0x22, 0x33 }));
fileVersion.setLastModified(new Date(123456789));
fileVersion.setPath("folder/file");
fileVersion.setSize(999 * 1024L);
fileVersion.setLinkTarget(null);
fileVersion.setStatus(FileStatus.CHANGED);
fileVersion.setType(FileType.FILE);
if (EnvironmentUtil.isWindows()) {
fileVersion.setDosAttributes("rha-");
} else if (EnvironmentUtil.isUnixLikeOperatingSystem()) {
fileVersion.setPosixPermissions("rw-rw-r-x");
}
// Run
FileProperties fileProperties = versionComparator.captureFileProperties(fileVersion);
// Test
assertEquals(new FileChecksum(new byte[] { 0x11, 0x22, 0x33 }), fileProperties.getChecksum());
assertEquals(123456789, fileProperties.getLastModified());
assertEquals("folder/file", fileProperties.getRelativePath());
assertEquals(999 * 1024, fileProperties.getSize());
assertNull(fileProperties.getLinkTarget());
assertTrue(fileProperties.exists());
assertEquals(FileType.FILE, fileProperties.getType());
if (EnvironmentUtil.isWindows()) {
DosFileAttributes dosFileAttributes = FileUtil.dosAttrsFromString(fileProperties.getDosAttributes());
assertTrue(dosFileAttributes.isArchive());
assertTrue(dosFileAttributes.isHidden());
assertTrue(dosFileAttributes.isReadOnly());
assertFalse(dosFileAttributes.isSystem());
assertNull(fileProperties.getPosixPermissions());
} else if (EnvironmentUtil.isUnixLikeOperatingSystem()) {
assertEquals("rw-rw-r-x", fileProperties.getPosixPermissions());
assertNull(fileProperties.getDosAttributes());
}
// Tear down
TestConfigUtil.deleteTestLocalConfigAndData(config);
}
use of org.syncany.config.Config in project syncany by syncany.
the class FileVersionComparatorTest method testCaptureFilePropertiesFromFile.
@Test
public void testCaptureFilePropertiesFromFile() throws Exception {
// Setup
Config config = TestConfigUtil.createTestLocalConfig();
FileVersionComparator versionComparator = new FileVersionComparator(config.getLocalDir(), config.getChunker().getChecksumAlgorithm());
// Create file
File somefile = new File(config.getLocalDir() + "/somefile");
Path somefilePath = Paths.get(somefile.getAbsolutePath());
TestFileUtil.createRandomFile(somefile, 100 * 1024);
somefile.setLastModified(1382196000);
if (EnvironmentUtil.isWindows()) {
Files.setAttribute(somefilePath, "dos:archive", false);
Files.setAttribute(somefilePath, "dos:hidden", false);
Files.setAttribute(somefilePath, "dos:readonly", false);
Files.setAttribute(somefilePath, "dos:system", false);
} else if (EnvironmentUtil.isUnixLikeOperatingSystem()) {
Files.setPosixFilePermissions(somefilePath, PosixFilePermissions.fromString("rw-rw-r-x"));
}
// Run
FileProperties fileProperties = versionComparator.captureFileProperties(somefile, null, true);
// Test
assertNotNull(fileProperties.getChecksum());
assertEquals(1382196000, fileProperties.getLastModified());
assertEquals("somefile", fileProperties.getRelativePath());
assertEquals(100 * 1024, fileProperties.getSize());
assertNull(fileProperties.getLinkTarget());
assertTrue(fileProperties.exists());
assertEquals(FileType.FILE, fileProperties.getType());
if (EnvironmentUtil.isWindows()) {
DosFileAttributes dosFileAttributes = FileUtil.dosAttrsFromString(fileProperties.getDosAttributes());
assertFalse(dosFileAttributes.isArchive());
assertFalse(dosFileAttributes.isHidden());
assertFalse(dosFileAttributes.isReadOnly());
assertFalse(dosFileAttributes.isSystem());
assertNull(fileProperties.getPosixPermissions());
} else if (EnvironmentUtil.isUnixLikeOperatingSystem()) {
assertEquals("rw-rw-r-x", fileProperties.getPosixPermissions());
assertNull(fileProperties.getDosAttributes());
}
// Tear down
TestConfigUtil.deleteTestLocalConfigAndData(config);
}
use of org.syncany.config.Config in project syncany by syncany.
the class FileVersionComparatorTest method testCompareFileVersionToFile.
@Test
public void testCompareFileVersionToFile() throws Exception {
// Setup
Config config = TestConfigUtil.createTestLocalConfig();
FileVersionComparator versionComparator = new FileVersionComparator(config.getLocalDir(), config.getChunker().getChecksumAlgorithm());
// Create File
File somefile = new File(config.getLocalDir() + "/file1");
Path somefilePath = Paths.get(somefile.getAbsolutePath());
TestFileUtil.createRandomFile(somefile, 130 * 1024);
somefile.setLastModified(1182196000);
if (EnvironmentUtil.isWindows()) {
Files.setAttribute(somefilePath, "dos:readonly", true);
Files.setAttribute(somefilePath, "dos:hidden", false);
Files.setAttribute(somefilePath, "dos:archive", true);
Files.setAttribute(somefilePath, "dos:system", false);
} else if (EnvironmentUtil.isUnixLikeOperatingSystem()) {
Files.setPosixFilePermissions(somefilePath, PosixFilePermissions.fromString("r--rwxrw-"));
}
// Create FileVersion
FileVersion fileVersion = new FileVersion();
fileVersion.setVersion(100L);
// << definitely differs
fileVersion.setChecksum(new FileChecksum(new byte[] { 0x11, 0x22, 0x33 }));
fileVersion.setLastModified(new Date(1182196000));
fileVersion.setPath("file1");
fileVersion.setSize(130 * 1024L);
fileVersion.setLinkTarget(null);
fileVersion.setStatus(FileStatus.NEW);
fileVersion.setType(FileType.FILE);
if (EnvironmentUtil.isWindows()) {
fileVersion.setDosAttributes("r-a-");
} else if (EnvironmentUtil.isUnixLikeOperatingSystem()) {
fileVersion.setPosixPermissions("r--rwxrw-");
}
// Run
FileVersionComparison fileComparison = versionComparator.compare(fileVersion, somefile, null, true);
// Test
assertFalse(fileComparison.areEqual());
assertTrue(CollectionUtil.containsExactly(fileComparison.getFileChanges(), FileChange.CHANGED_CHECKSUM));
// Tear down
TestConfigUtil.deleteTestLocalConfigAndData(config);
}
Aggregations