package hudson;
import static org.junit.Assert.assertTrue;
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.util.StreamTaskListener;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
/**
* @author Kohsuke Kawaguchi
*/
public class FileSystemProvisionerTest {
@Rule
public JenkinsRule j = new JenkinsRule();
@Rule
public TemporaryFolder tmp = new TemporaryFolder();
@Test
@Issue("JENKINS-13165")
public void test() throws Exception {
FreeStyleProject p = j.createFreeStyleProject();
FreeStyleBuild b = j.assertBuildStatusSuccess(p.scheduleBuild2(0));
b.getWorkspace().child(".dot").touch(0);
StreamTaskListener listener = StreamTaskListener.fromStdout();
WorkspaceSnapshot s = j.jenkins.getFileSystemProvisioner().snapshot(b, b.getWorkspace(), "**/*", listener);
FilePath dst = new FilePath(tmp.getRoot());
s.restoreTo(b, dst, listener);
assertTrue(dst.child(".dot").exists());
}
}