package snapshoot;
import com.dx168.fastdex.build.snapshoot.file.FileNode;
import com.dx168.fastdex.build.snapshoot.sourceset.JavaDirectorySnapshoot;
import com.dx168.fastdex.build.snapshoot.sourceset.SourceSetDiffResultSet;
import com.dx168.fastdex.build.snapshoot.sourceset.SourceSetSnapshoot;
import junit.framework.TestCase;
import org.junit.Test;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
/**
* Created by tong on 17/3/31.
*/
public class SourceSetSnapshootTest extends TestCase {
String workDir;
String source_set1;
String source_set2;
String source_set11;
String source_set22;
@Override
protected void setUp() throws Exception {
super.setUp();
File currentPath = new File(this.getClass().getResource("/").getPath());
System.out.println(currentPath);
workDir = "/Users/tong/Desktop/sourceSetTest";
source_set1 = workDir + File.separator + "source_set1";
source_set2 = workDir + File.separator + "source_set2";
source_set11 = workDir + File.separator + "source_set11";
source_set22 = workDir + File.separator + "source_set22";
}
@Test
public void testCreate() throws Throwable {
if (!isDir(source_set1) || !isDir(source_set2) || !isDir(source_set11) || !isDir(source_set22)) {
System.err.println("Test-env not init!!");
}
SourceSetSnapshoot snapshoot = new SourceSetSnapshoot(new File(workDir),source_set1,source_set2);
assertEquals(snapshoot.directorySnapshootSet.size(),2);
SourceSetSnapshoot snapshoot2 = new SourceSetSnapshoot(new File(workDir),source_set1,source_set1);
assertEquals(snapshoot2.directorySnapshootSet.size(),1);
}
@Test
public void testDiffAddOneSourceSet() throws Throwable {
if (!isDir(source_set1) || !isDir(source_set2) || !isDir(source_set11) || !isDir(source_set22)) {
System.err.println("Test-env not init!!");
}
SourceSetSnapshoot now = new SourceSetSnapshoot(new File(workDir),source_set1,source_set2);
SourceSetSnapshoot old = new SourceSetSnapshoot(new File(workDir),source_set1);
SourceSetDiffResultSet sourceSetResultSet = (SourceSetDiffResultSet) now.diff(old);
assertTrue(sourceSetResultSet.isJavaFileChanged());
System.out.println(sourceSetResultSet);
}
@Test
public void testSave() throws Throwable {
if (!isDir(source_set1) || !isDir(source_set2) || !isDir(source_set11) || !isDir(source_set22)) {
System.err.println("Test-env not init!!");
}
SourceSetSnapshoot now = new SourceSetSnapshoot(new File(workDir),source_set1,source_set2);
now.serializeTo(new FileOutputStream(new File(workDir,"now.json")));
}
@Test
public void testDiff1() throws Throwable {
if (!isDir(source_set1) || !isDir(source_set2) || !isDir(source_set11) || !isDir(source_set22)) {
System.err.println("Test-env not init!!");
}
SourceSetSnapshoot now = new SourceSetSnapshoot(new File(workDir),source_set1);
SourceSetSnapshoot old = new SourceSetSnapshoot(new File(workDir),source_set11);
SourceSetDiffResultSet sourceSetResultSet = (SourceSetDiffResultSet) now.diff(old);
System.out.println(sourceSetResultSet.toString());
sourceSetResultSet.serializeTo(new FileOutputStream(new File(workDir,"diff.json")));
}
@Test
public void testDiff2() throws Throwable {
if (!isDir(source_set1) || !isDir(source_set2) || !isDir(source_set11) || !isDir(source_set22)) {
System.err.println("Test-env not init!!");
}
SourceSetSnapshoot now = new SourceSetSnapshoot(new File(workDir),source_set1);
now.serializeTo(new FileOutputStream(new File(workDir,"snapshoot.json")));
SourceSetSnapshoot old = (SourceSetSnapshoot) SourceSetSnapshoot.load(new File(workDir,"snapshoot.json"),SourceSetSnapshoot.class);
JavaDirectorySnapshoot javaDirectorySnapshoot = new ArrayList<>(old.directorySnapshootSet).get(0);
FileNode fileNode = new ArrayList<>(javaDirectorySnapshoot.nodes).get(0);
fileNode.lastModified = System.currentTimeMillis();
SourceSetDiffResultSet resultSet = (SourceSetDiffResultSet) now.diff(old);
assertEquals(resultSet.changedJavaFileDiffInfos.size(),1);
System.out.println(resultSet);
}
@Test
public void testDiff3() throws Throwable {
if (!isDir(source_set1) || !isDir(source_set2) || !isDir(source_set11) || !isDir(source_set22)) {
System.err.println("Test-env not init!!");
}
SourceSetSnapshoot now = new SourceSetSnapshoot(new File("/Users/tong/Projects/fastdex/DevSample/app"),"");
}
public boolean isDir(File dir) {
if (dir == null) {
return false;
}
if (!dir.exists() || !dir.isDirectory()) {
return false;
}
return true;
}
public boolean isDir(String dir) {
if (dir == null) {
return false;
}
return isDir(new File(dir));
}
}