public void testGetStoreEntry() throws Exception { cleanUpDataFolder(); LocalHistoryTestStore store = createStore(); LogHandler lh = new LogHandler("copied file", LogHandler.Compare.STARTS_WITH); File folder = dataDir; folder.mkdirs(); File file1 = new File(folder, "file1"); File file2 = new File(folder, "file2"); createFile(store, file1, System.currentTimeMillis(), "data1"); createFile(store, file2, System.currentTimeMillis(), "data2"); // change the file lh.reset(); changeFile(store, file1, System.currentTimeMillis(), "data1.1"); lh.waitUntilDone(); // rewrite the file write(file1, "data1.2".getBytes()); assertDataInFile(file1, "data1.2".getBytes()); // get the files last state StoreEntry entry = store.getStoreEntry(file1, System.currentTimeMillis()); assertNotNull(entry); assertDataInStream(entry.getStoreFileInputStream(), "data1.1".getBytes()); }
public void testWrite2StoreVsCleanUp() throws Exception { LocalHistoryTestStore store = createStore(); long ts = System.currentTimeMillis(); File file = new File(dataDir, "crapfile"); File storefile = store.getStoreFile(file, ts, true); assertTrue(storefile.getParentFile().exists()); assertFalse(storefile.exists()); store.cleanUp(ts); // shouldn't remove the storefiles parent even if it's still empty assertTrue(storefile.getParentFile().exists()); OutputStream os1 = StoreEntry.createStoreFileOutputStream(storefile); }
public void testGetFolderState() throws Exception { LocalHistoryTestStore store = createStore(); // check for deleted root folder File folder = new File(dataDir, "datafolder"); setupFirstFolderToRevert(store, folder); File[] files = folder.listFiles(); assertEquals(files.length, 7); // fileNotInStorage // fileUnchanged // fileChangedAfterRevert // X fileDeletedAfterRevert // fileDeletedBeforeRevert // fileUndeletedBeforeRevert // fileCreatedToLate // folderCreatedAfterRevert store.fileDelete(folder, System.currentTimeMillis()); Thread.sleep(1000); // give me some time long revertToTS = System.currentTimeMillis(); StoreEntry[] entries = store.getFolderState(folder, files, revertToTS); assertEquals(entries.length, 0); // all are deleted store.cleanUp(1); cleanUpDataFolder(); folder = new File(dataDir, "datafolder"); revertToTS = setupFirstFolderToRevert(store, folder); files = folder.listFiles(); assertEquals(files.length, 7); // fileNotInStorage // fileUnchanged // fileChangedAfterRevert // X fileDeletedAfterRevert // fileDeletedBeforeRevert // fileUndeletedBeforeRevert // fileCreatedToLate // X folderDeletedAfterRevert // folderCreatedAfterRevert entries = store.getFolderState(folder, files, revertToTS); assertEquals(entries.length, 8); // * returned, X as to be deleted // fileNotInStorage - // * fileUnchanged - * // * fileChangedAfterRevert - * previous revision // * fileDeletedAfterRevert - * // * fileUndeletedBeforeRevert - * // X fileCreatedAfterRevert - * X // * X fileDeletedBeforeRevert - * X // * folderDeletedAfterRevert - * // folderCreatedAfterRevert - * X Map<String, StoreEntry> entriesMap = new HashMap<String, StoreEntry>(); for (StoreEntry se : entries) { entriesMap.put(se.getFile().getName(), se); } assertNull(entriesMap.get("fileNotInStorage")); assertNotNull(entriesMap.get("fileUnchanged")); assertNotNull(entriesMap.get("fileChangedAfterRevert")); assertNotNull(entriesMap.get("fileDeletedAfterRevert")); assertNotNull(entriesMap.get("fileUndeletedBeforeRevert")); assertNotNull(entriesMap.get("fileCreatedAfterRevert")); assertNotNull(entriesMap.get("fileDeletedBeforeRevert")); assertNotNull(entriesMap.get("folderDeletedAfterRevert")); assertNotNull(entriesMap.get("folderCreatedAfterRevert")); assertNotNull(entriesMap.get("fileUnchanged").getStoreFile()); assertNotNull(entriesMap.get("fileChangedAfterRevert").getStoreFile()); assertNotNull(entriesMap.get("fileDeletedAfterRevert").getStoreFile()); assertNotNull(entriesMap.get("fileUndeletedBeforeRevert").getStoreFile()); assertNotNull(entriesMap.get("folderDeletedAfterRevert").getStoreFile()); assertNull(entriesMap.get("fileCreatedAfterRevert").getStoreFile()); assertNull(entriesMap.get("fileDeletedBeforeRevert").getStoreFile()); assertNull(entriesMap.get("folderCreatedAfterRevert").getStoreFile()); String strStore = read(entriesMap.get("fileChangedAfterRevert").getStoreFileInputStream(), 1024); // String strFile = read(new // FileInputStream(entriesMap.get("fileChangedAfterRevert").getFile()), 1024); assertNotSame("BEFORE change", strStore); }