package org.peerbox.watchservice.integration; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import org.hive2hive.core.model.IFileVersion; import org.hive2hive.core.processes.files.recover.IVersionSelector; import org.junit.Test; import org.peerbox.client.ClientNode; import org.peerbox.testutils.FileTestUtils; public class Recover extends FileIntegrationTest { @Test public void recoverLastVersionTest() throws Exception { Path srcFile = FileTestUtils.createRandomFile(masterRootPath, 10); Path recoveredFile = srcFile.getParent().resolve("recovered.file"); waitForExists(srcFile, WAIT_TIME_SHORT); assertSyncClientPaths(); byte[] fileContent_v0 = Files.readAllBytes(srcFile); FileTestUtils.writeRandomData(srcFile, 10); waitForUpdate(srcFile, WAIT_TIME_SHORT); assertSyncClientPaths(); byte[] fileContent_v1 = Files.readAllBytes(srcFile); System.out.println("Content: " + new String(fileContent_v0)); System.out.println("Content: " + new String(fileContent_v1)); ClientNode clientZero = getNetwork().getClientNode(0); clientZero.getFileManager().recover(srcFile, new IVersionSelector() { @Override public IFileVersion selectVersion(List<IFileVersion> availableVersions) { return availableVersions.get(0); } @Override public String getRecoveredFileName(String fullName, String name, String extension) { return recoveredFile.getFileName().toString(); } }).executeAsync(); waitForExistsLocally(recoveredFile, WAIT_TIME_SHORT); waitForContentEquals(recoveredFile, fileContent_v0, 30); waitForExists(recoveredFile, WAIT_TIME_SHORT); } }