package restx.common;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import java.nio.file.Path;
import static org.assertj.core.api.Assertions.assertThat;
import static restx.common.MoreFiles.extractZip;
/**
* User: xavierhanin
* Date: 9/9/13
* Time: 9:17 PM
*/
public class MoreFilesTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Test
public void should_copy_directories() throws Exception {
File source = folder.newFolder("source");
Files.write("test", new File(source, "test"), Charsets.UTF_8);
File subfolder = new File(source, "subfolder");
subfolder.mkdirs();
Files.write("test2", new File(subfolder, "test2"), Charsets.UTF_8);
Path targetDir = folder.getRoot().toPath().resolve("target");
MoreFiles.copyDir(source.toPath(), targetDir);
assertThat(targetDir.toFile()).exists();
assertThat(targetDir.resolve("test").toFile()).exists().hasContent("test");
assertThat(targetDir.resolve("subfolder/test2").toFile()).exists().hasContent("test2");
}
@Test
public void should_extract_zip() throws Exception {
File dest = folder.newFolder("dest");
extractZip(new File("src/test/resources/restx/common/test.zip"), dest);
assertThat(new File(dest, "A.txt")).exists();
assertThat(new File(dest, "1/B.txt")).exists();
assertThat(new File(dest, "1/C.txt")).exists();
assertThat(new File(dest, "2/D.txt")).exists();
assertThat(new File(dest, "2/E.txt")).exists().hasContent("hello");
}
}