package forklift.deployment; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.IOException; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.Test; import com.google.common.io.Files; import forklift.ForkliftTest; public class DeploymentWatchTest { @Test public void watch() throws IOException { final File dir = Files.createTempDir(); // Create a new deployment jar. final File file = File.createTempFile("test", ".jar", dir); Files.copy(ForkliftTest.testJar(), file); final AtomicBoolean deploy = new AtomicBoolean(true); DeploymentWatch watch = new DeploymentWatch(dir, new DeploymentEvents() { @Override public void onDeploy(Deployment deployment) { assertTrue(deploy.get()); assertEquals(file, deployment.getDeployedFile()); } @Override public void onUndeploy(Deployment deployment) { assertFalse(deploy.get()); assertEquals(file, deployment.getDeployedFile()); } }); watch.run(); deploy.set(false); file.delete(); watch.run(); } }