Search in sources :

Example 11 with CLIOutputWithRevisionResponse

use of org.eclipse.che.plugin.svn.shared.CLIOutputWithRevisionResponse in project che by eclipse.

the class TestUtils method createGreekTreeRepository.

/**
     * Creates a new Subversion repository in a temporary location with the Greek Tree structure within it.
     *
     * @return the path to the repository root
     * @throws Exception
     *         if anything goes wrong
     */
public static File createGreekTreeRepository() throws Exception {
    final File repoRoot = Files.createTempDir();
    final File wcRoot = Files.createTempDir();
    // Clean up after execution
    repoRoot.deleteOnExit();
    wcRoot.deleteOnExit();
    // Create the repository
    final CommandLineResult result = UpstreamUtils.executeCommandLine(null, "svnadmin", new String[] { "create", repoRoot.getAbsolutePath() }, -1, repoRoot);
    // Make sure the result is fine
    handleCLIResult(result);
    // Checkout the repository
    final CLIOutputWithRevisionResponse coResponse = subversionApi.checkout(dtoFactory.createDto(CheckoutRequest.class).withProjectPath(wcRoot.getAbsolutePath()).withUrl("file:///" + repoRoot.getAbsolutePath()));
    assertTrue(coResponse.getRevision() > -1);
    final List<String> pathsToAdd = new ArrayList<>();
    // Create the directory structure
    for (final String path : GREEK_TREE) {
        final File fileForPath = new File(wcRoot, path);
        final String[] pathParts = path.split("/");
        // Create parent directories (Probably not necessary)
        Files.createParentDirs(fileForPath);
        if (!path.endsWith("/") && fileForPath.createNewFile()) {
            Files.write(("This is the file '" + pathParts[pathParts.length - 1] + "'.").getBytes(), fileForPath);
            pathsToAdd.add(path.substring(1));
        }
    }
    // Add the files in the working copy to version control
    subversionApi.add(dtoFactory.createDto(AddRequest.class).withProjectPath(wcRoot.getAbsolutePath()).withPaths(pathsToAdd).withAddParents(true));
    //Add properties
    final CLIOutputResponse propResponse = subversionApi.propset(dtoFactory.createDto(PropertySetRequest.class).withValue("user").withProjectPath(wcRoot.getAbsolutePath()).withPath(".").withForce(true).withDepth(Depth.FULLY_RECURSIVE).withName("owner"));
    assertTrue(propResponse.getOutput().size() > 0);
    // Commit the changes
    final CLIOutputWithRevisionResponse cResponse = subversionApi.commit(dtoFactory.createDto(CommitRequest.class).withProjectPath(wcRoot.getAbsolutePath()).withMessage("Initial commit."));
    assertEquals(1L, cResponse.getRevision());
    return repoRoot;
}
Also used : CommitRequest(org.eclipse.che.plugin.svn.shared.CommitRequest) CommandLineResult(org.eclipse.che.plugin.svn.server.upstream.CommandLineResult) ArrayList(java.util.ArrayList) CLIOutputWithRevisionResponse(org.eclipse.che.plugin.svn.shared.CLIOutputWithRevisionResponse) CheckoutRequest(org.eclipse.che.plugin.svn.shared.CheckoutRequest) CLIOutputResponse(org.eclipse.che.plugin.svn.shared.CLIOutputResponse) PropertySetRequest(org.eclipse.che.plugin.svn.shared.PropertySetRequest) File(java.io.File)

Aggregations

CLIOutputWithRevisionResponse (org.eclipse.che.plugin.svn.shared.CLIOutputWithRevisionResponse)11 CheckoutRequest (org.eclipse.che.plugin.svn.shared.CheckoutRequest)6 Test (org.junit.Test)5 Operation (org.eclipse.che.api.promises.client.Operation)2 OperationException (org.eclipse.che.api.promises.client.OperationException)2 PromiseError (org.eclipse.che.api.promises.client.PromiseError)2 StatusNotification (org.eclipse.che.ide.api.notification.StatusNotification)2 Project (org.eclipse.che.ide.api.resources.Project)2 CommitRequest (org.eclipse.che.plugin.svn.shared.CommitRequest)2 File (java.io.File)1 ArrayList (java.util.ArrayList)1 Promise (org.eclipse.che.api.promises.client.Promise)1 Resource (org.eclipse.che.ide.api.resources.Resource)1 Credentials (org.eclipse.che.ide.api.subversion.Credentials)1 CommandLineResult (org.eclipse.che.plugin.svn.server.upstream.CommandLineResult)1 CLIOutputResponse (org.eclipse.che.plugin.svn.shared.CLIOutputResponse)1 PropertySetRequest (org.eclipse.che.plugin.svn.shared.PropertySetRequest)1 SwitchRequest (org.eclipse.che.plugin.svn.shared.SwitchRequest)1 UpdateRequest (org.eclipse.che.plugin.svn.shared.UpdateRequest)1