package org.peerbox.watchservice.integration; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; /** * These tests are currently ignored. They only repeat other tests for special purposes. * @author Claudio * */ @RunWith(Parameterized.class) public class RepeatedUpdate extends FileIntegrationTest{ @Parameterized.Parameters public static List<Object[]> data() { return Arrays.asList(new Object[30][0]); } @Test @Ignore public void manyFilesInManyFoldersTest() throws IOException { int nrFolders = 10; int nrFilesPerFolder = 10; int totalFiles = nrFolders + nrFolders * nrFilesPerFolder; List<Path> files = addManyFilesInManyFolders(nrFolders, nrFilesPerFolder); assertCleanedUpState(totalFiles); updateManyFiles(files); assertCleanedUpState(totalFiles); } @Test @Ignore public void singleFileInManyFoldersTest() throws IOException { int nrFolders = 20; int nrFilesPerFolder = 1; int totalFiles = nrFolders + nrFolders * nrFilesPerFolder; List<Path> files = addManyFilesInManyFolders(nrFolders, nrFilesPerFolder); assertCleanedUpState(totalFiles); updateManyFiles(files); assertCleanedUpState(totalFiles); } private List<Path> updateManyFiles(List<Path> files) throws IOException { List<Path> modified = new ArrayList<>(); for(int i = 0; i < files.size()/2; ++i) { Path f = files.get(i); // ignore directories if(Files.isDirectory(f)) { continue; } // modify with probability 0.5 boolean modify = true; //(RandomUtils.nextInt(0, 100) % 2) == 0; if (modify) { updateSingleFile(f, false); modified.add(f); } } waitForUpdate(modified, WAIT_TIME_LONG); return modified; } }