package com.mysema.maven.apt;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import org.junit.Test;
import static org.junit.Assert.*;
public class FileSyncTest {
@Test
public void sync1() throws IOException {
File source = Files.createTempDir();
File sourceFile = new File(source, "inSource");
sourceFile.createNewFile();
File sourceFolder = new File(source, "inSourceFolder");
sourceFolder.mkdir();
File sourceFile2 = new File(sourceFolder, "inSource");
sourceFile2.createNewFile();
File target = Files.createTempDir();
File targetFile = new File(target, "inTarget");
targetFile.createNewFile();
FileSync.syncFiles(source, target);
assertTrue(new File(target, "inSource").exists());
assertTrue(new File(target, "inSourceFolder" + File.separator + "inSource").exists());
assertFalse(targetFile.exists());
FileSync.syncFiles(source, target);
}
@Test
public void sync2() throws IOException {
File source = Files.createTempDir();
File sourceFile = new File(source, "file");
Files.write("abc", sourceFile, Charsets.UTF_8);
File target = Files.createTempDir();
File targetFile = new File(target, "file");
Files.write("abc", targetFile, Charsets.UTF_8);
long modified = targetFile.lastModified();
FileSync.syncFiles(source, target);
assertEquals(modified, targetFile.lastModified());
}
@Test
public void sync3() throws IOException {
File source = Files.createTempDir();
File target = Files.createTempDir();
File sourceFile1 = Paths.get(source.getAbsolutePath(), "com","mysema","querydsl","Query.java").toFile();
File sourceFile2 = Paths.get(source.getAbsolutePath(), "com","mysema","Entity.java").toFile();
File targetFile1 = Paths.get(target.getAbsolutePath(), "com","mysema","querydsl","OldQuery.java").toFile();
File targetFile2 = Paths.get(target.getAbsolutePath(), "com","mysema","querydsl","support","Example.java").toFile();
sourceFile1.getParentFile().mkdirs();
sourceFile2.getParentFile().mkdirs();
targetFile1.getParentFile().mkdirs();
targetFile2.getParentFile().mkdirs();
Files.write("abc", sourceFile1, Charsets.UTF_8);
Files.write("def", sourceFile2, Charsets.UTF_8);
Files.write("ghi", targetFile1, Charsets.UTF_8);
Files.write("jkl", targetFile2, Charsets.UTF_8);
FileSync.syncFiles(source, target);
assertFalse(targetFile1.exists());
assertFalse(targetFile2.exists());
assertFalse(targetFile2.getParentFile().exists());
assertTrue(Paths.get(target.getAbsolutePath(), "com","mysema","querydsl","Query.java").toFile().exists());
assertTrue(Paths.get(target.getAbsolutePath(), "com","mysema","Entity.java").toFile().exists());
}
}