Package org.syncany.operations.daemon

Examples of org.syncany.operations.daemon.WatchServer


    StatusFolderRequest cliStatusRequest = new StatusFolderRequest();
    cliStatusRequest.setId(2586);
    cliStatusRequest.setRoot(clientA.getConfig().getLocalDir().getAbsolutePath());
   
    // Create watchServer
    WatchServer watchServer = new WatchServer()
    watchServer.start(daemonConfig);   
    Thread.sleep(1000); // Settlement for watch server
   
    // Create large file, then wait 3sec for the settlement timer and
    // send the CLI request at the same time   
    clientA.createNewFile("largefile", 10*1024*1024);
    Thread.sleep(3000); // Settlement in Watcher!
   
    localEventBus.post(cliStatusRequest);
   
    // Then, let's hope the response is "no, no, no!"
    Response response = waitForResponse(2586);
   
    assertTrue(response instanceof StatusFolderResponse);
    StatusFolderResponse cliResponse = (StatusFolderResponse) response;
   
    //assertEquals("Cannot run CLI commands while sync is running or requested.\n", cliResponse.getOutput());
   
    watchServer.stop();
    clientA.deleteTestData();
  }
View Full Code Here


   
    // Create access token (not needed in this test, but prevents errors in daemon)
    daemonConfig.setPortTO(TestDaemonUtil.createPortTO(port));
     
    // Create watchServer
    WatchServer watchServer = new WatchServer();
   
    clientA.createNewFile("file-1");
    watchServer.start(daemonConfig);
   
    for (int i = 0; i < 20; i++) {
      if (clientB.getLocalFile("file-1").exists()) {
        break;
      }
     
      Thread.sleep(1000);
    }
   
    assertTrue("File has not synced to clientB", clientB.getLocalFile("file-1").exists());
    assertEquals(clientA.getLocalFile("file-1").length(), clientB.getLocalFile("file-1").length());
     
    registerWithBus();
   
    // Create watchServer
    clientA.createNewFolder("folder");
    clientA.createNewFile("folder/file-2");
   
    // Allow server to settle
    Thread.sleep(100);
   
    // Repeat request until 3 files are found.
    FileVersion[] files = null;
   
    for (int i = 0; i < 20; i++) {
      LsFolderRequest request = new LsFolderRequest();
      LsOperationOptions lsOperationOption = new LsOperationOptions();
     
      request.setId(i);
      request.setRoot(clientA.getConfig().getLocalDir().getAbsolutePath());
      request.setOptions(lsOperationOption);
      eventBus.post(request);
     
      Response response = waitForResponse(i);
     
      assertTrue(response instanceof LsFolderResponse);
      LsFolderResponse treeResponse = (LsFolderResponse) response;
     
      files = treeResponse.getResult().getFileTree().values().toArray(new FileVersion[]{});
     
      if (files.length == 2) {
        break;
      }
     
      if (i == 19) {
        assertEquals(2, files.length);
      }
      else {
        Thread.sleep(1000);
      }
    }
   
    if (files[0].getName().equals("folder")) {
      files = new FileVersion[]{files[1], files[0]};
    }

    assertEquals(clientA.getLocalFile("file-1").getName(), files[0].getName());
    assertEquals(clientA.getLocalFile("file-1").length(), (long) files[0].getSize());

    assertEquals(clientA.getLocalFile("folder").getName(), files[1].getName());
    assertTrue(clientA.getLocalFile("folder").isDirectory());
    assertEquals(files[1].getType(), FileVersion.FileType.FOLDER);

    // Create GetFileHistoryRequest for the first returned file
    GetFileHistoryFolderRequest request = new GetFileHistoryFolderRequest();
    request.setId(21);
    request.setRoot(clientA.getConfig().getLocalDir().getAbsolutePath());
    request.setFileHistoryId(files[0].getFileHistoryId().toString());
   
    eventBus.post(request);
   
    Response response = waitForResponse(21);
    assertTrue(response instanceof GetFileHistoryFolderResponse);
    GetFileHistoryFolderResponse fileHistoryResponse = (GetFileHistoryFolderResponse) response;
    assertEquals(1, fileHistoryResponse.getFiles().size());
    assertEquals(files[0], fileHistoryResponse.getFiles().get(0));
   
    // Create GetFileRequest for the first returned file
    GetFileFolderRequest getFileRequest = new GetFileFolderRequest();
    getFileRequest.setId(22);
    getFileRequest.setRoot(clientA.getConfig().getLocalDir().getAbsolutePath());
    getFileRequest.setFileHistoryId(files[0].getFileHistoryId().toString());
    getFileRequest.setVersion(1);   
       
    eventBus.post(getFileRequest);
   
    int i = 0;
    while (internalResponse == null && i < 40) {
      Thread.sleep(100);
      i++;
    }
   
    assertEquals((long)files[0].getSize(), internalResponse.getTempFile().length());
   
    // Cli Requests
    clientA.copyFile("file-1", "file-1.bak");
   
    // CLI request while running.
    StatusFolderRequest statusRequest = new StatusFolderRequest();
    StatusOperationOptions statusOperationOption = new StatusOperationOptions();
    statusOperationOption.setForceChecksum(true);
   
    statusRequest.setId(30);
    statusRequest.setRoot(clientA.getConfig().getLocalDir().getAbsolutePath());
    statusRequest.setOptions(statusOperationOption);
   
    // Create big file to trigger sync
    clientA.createNewFile("bigfileforlongsync", 5000);

    // ^^ Now sync should start and we send 'status' requests
    boolean syncRunningMessageReceived = false;
   
    for (i = 30; i < 50; i++) {
      statusRequest.setId(i);
      eventBus.post(statusRequest);
     
      response = waitForResponse(i);
     
      if (response instanceof AlreadySyncingResponse) {
        syncRunningMessageReceived = true;
        break;
      }     
     
      Thread.sleep(200);
    }
   
    assertTrue(syncRunningMessageReceived);
   
    // Allow daemon to sync
   
    Thread.sleep(10000);
    for (i = 50; i < 60; i++) {
      statusRequest.setId(i);
      eventBus.post(statusRequest);
     
      response = waitForResponse(i);
     
      if (response instanceof StatusFolderResponse) {
        break;
      }
     
      Thread.sleep(1000);
    }   
   
    assertNotNull(response);
    //assertEquals("No local changes.\n", cliResponse.getOutput());
   
    // Restore file test
   
    RestoreFolderRequest restoreRequest = new RestoreFolderRequest();
    RestoreOperationOptions restoreOperationOption = new RestoreOperationOptions();
    restoreOperationOption.setFileHistoryId(files[0].getFileHistoryId());
    restoreOperationOption.setFileVersion(1);
   
    restoreRequest.setId(70);
    restoreRequest.setRoot(clientA.getConfig().getLocalDir().getAbsolutePath());
    restoreRequest.setOptions(restoreOperationOption);
   
    eventBus.post(restoreRequest);
   
    response = waitForResponse(70);
   
    assertTrue(response instanceof RestoreFolderResponse);
    RestoreFolderResponse restoreResponse = (RestoreFolderResponse) response;
   
    byte[] copyChecksum = FileUtil.createChecksum(clientA.getLocalFile("file-1.bak"), "SHA1");
    byte[] restoreChecksum = FileUtil.createChecksum(restoreResponse.getResult().getTargetFile(), "SHA1");
   
    assertArrayEquals(copyChecksum, restoreChecksum);
    watchServer.stop();
    clientA.deleteTestData();
    clientB.deleteTestData();
  }
View Full Code Here

TOP

Related Classes of org.syncany.operations.daemon.WatchServer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.