/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package pieShareAppITs; import commonTestTools.TestFileUtils; import java.io.File; import org.apache.commons.io.FileUtils; import org.pieShare.pieShareApp.model.PieShareConfiguration; import org.pieShare.pieShareApp.model.PieUser; import org.pieShare.pieShareApp.model.message.api.IFileTransferCompleteMessage; import org.pieShare.pieShareApp.model.message.metaMessage.FileTransferCompleteMessage; import org.pieShare.pieShareApp.task.eventTasks.FileTransferCompleteTask; import org.pieShare.pieTools.pieUtilities.service.pieExecutorService.PieExecutorTaskFactory; import org.pieShare.pieTools.pieUtilities.service.pieExecutorService.api.IPieExecutorTaskFactory; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; import static org.testng.Assert.fail; import static org.testng.Assert.fail; import org.testng.annotations.*; import pieShareAppITs.helper.ITTasksCounter; import pieShareAppITs.helper.ITUtil; import pieShareAppITs.helper.runner.FileSyncMain; import pieShareAppITs.helper.tasks.TestTask; /** * * @author Svetoslav */ public class SyncOneBigFileIT { private AnnotationConfigApplicationContext context; private Process process; public SyncOneBigFileIT() { } @BeforeClass public static void setUpClass() throws Exception { ITUtil.setUpEnviroment(true); } @BeforeMethod public void setUpMethod() throws Exception { ITUtil.performTearDownDelete(); context = ITUtil.getContext(); } @AfterMethod public void tearDownMethod() throws Exception { process.destroy(); ITUtil.performTearDown(context); } @Test(timeOut = 600000) public void syncOneBigFileTest() throws Exception { ITTasksCounter counter = context.getBean(ITTasksCounter.class); PieUser user = context.getBean("pieUser", PieUser.class); PieShareConfiguration config = user.getPieShareConfiguration(); IPieExecutorTaskFactory executorFactory = context.getBean("pieExecutorTaskFactory", PieExecutorTaskFactory.class); executorFactory.removeTaskRegistration(FileTransferCompleteMessage.class); executorFactory.registerTask(FileTransferCompleteMessage.class, TestTask.class); IPieExecutorTaskFactory testExecutorFacotry = context.getBean("testTaskFactory", PieExecutorTaskFactory.class); testExecutorFacotry.registerTask(FileTransferCompleteMessage.class, FileTransferCompleteTask.class); this.process = ITUtil.startProcess(FileSyncMain.class); ITUtil.executeLoginToTestCloud(context); ITUtil.waitForProcessToStartup(this.process); File filex = new File(config.getWorkingDir().getParent(), "test.txt"); TestFileUtils.createFile(filex, 1024); //ITFileUtils.createFile(filex, 4294967296L); File fileMain = new File(config.getWorkingDir(), "test.txt"); PieUser botUser = context.getBean("botPieUser", PieUser.class); PieShareConfiguration botConfig = botUser.getPieShareConfiguration(); File fileBot = new File(botConfig.getWorkingDir(), "test.txt"); FileUtils.moveFile(filex, fileMain); //FileUtils.moveFile(filex, fileBot); while (counter.getCount(FileTransferCompleteTask.class) < 1) { Thread.sleep(5000); } if (counter.getCount(FileTransferCompleteTask.class) == 1) { assertTrue(ITUtil.waitForFileToBeFreed(fileMain, 30)); assertTrue(ITUtil.waitForFileToBeFreed(fileBot, 30)); boolean filesAreEqual = FileUtils.contentEquals(fileMain, fileBot); assertTrue(filesAreEqual); } else { fail("To much file transerfers?!"); } } /*@Test(timeOut = 120000) public void syncDeleteFile() { }*/ }