package org.easysoa.runtime; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import java.io.File; import java.io.IOException; import org.codehaus.plexus.util.FileUtils; import org.easysoa.runtime.api.Deployable; import org.easysoa.runtime.api.event.OnDeployListener; import org.easysoa.runtime.api.event.OnUndeployListener; import org.easysoa.runtime.copypaste.CopyPasteServer; import org.easysoa.runtime.utils.FileDeployable; import org.junit.Before; import org.junit.Test; public class CopyPasteTest { //private static Logger logger = Logger.getLogger(CopyPasteTest.class); private static final String ROOT = "target/test-classes/"; private static final String SERVER_FOLDER = ROOT + "server/"; private static final String DEPLOYABLE_NAME = "hello.jar"; private static final String DEPLOYABLE_PATH = ROOT + DEPLOYABLE_NAME; @Before public void clearServer() throws IOException { FileUtils.deleteDirectory(SERVER_FOLDER); } @Test public void testDeploymentAndEvents() throws IOException { // Prepare server and deployable CopyPasteServer copyPasteServer = new CopyPasteServer(new File(SERVER_FOLDER)); FileDeployable deployable = new FileDeployable(DEPLOYABLE_PATH); File deployableTarget = new File(SERVER_FOLDER + DEPLOYABLE_NAME); // Add mock listeners OnDeployListener onDeployListener = mock(OnDeployListener.class); OnUndeployListener onUndeployListener = mock(OnUndeployListener.class); copyPasteServer.addOnDeployListener(onDeployListener); copyPasteServer.addOnUndeployListener(onUndeployListener); // Deploy copyPasteServer.deploy(deployable); assertTrue(deployableTarget.exists()); assertEquals(deployable.getFile().length(), deployableTarget.length()); verify(onDeployListener, times(1)).onDeploy((Deployable<?>) any()); // Undeploy copyPasteServer.undeploy(deployable); assertFalse(deployableTarget.exists()); verify(onUndeployListener, times(1)).onUndeploy((Deployable<?>) any()); } }