/* * RUserDefaultRepositoryDirectoryCallsTest.java * * Copyright (C) 2010-2016, Microsoft Corporation * * This program is licensed to you under the terms of Version 2.0 of the * Apache License. This program is distributed WITHOUT * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT, * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the * Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0) for more details. * */ package com.revo.deployr.client.api; import com.revo.deployr.DeployrUtil; import com.revo.deployr.client.RClient; import com.revo.deployr.client.RClientException; import com.revo.deployr.client.RRepositoryDirectory; import com.revo.deployr.client.RRepositoryFile; import com.revo.deployr.client.RUser; import com.revo.deployr.client.about.RRepositoryDirectoryDetails; import com.revo.deployr.client.auth.basic.RBasicAuthentication; import com.revo.deployr.client.factory.RClientFactory; import com.revo.deployr.client.params.RepoAccessControlOptions; import com.revo.deployr.client.params.RepoUploadOptions; import org.junit.*; import java.util.Arrays; import java.util.List; import static org.junit.Assert.*; public class RUserDefaultRepositoryDirectoryCallsTest { RClient rClient = null; RUser rUser = null; public RUserDefaultRepositoryDirectoryCallsTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() { try { String url = System.getProperty("connection.protocol") + System.getProperty("connection.endpoint"); if (url == null) { fail("setUp: connection.[protocol|endpoint] null."); } boolean allowSelfSigned = Boolean.valueOf(System.getProperty("allow.SelfSignedSSLCert")); rClient =RClientFactory.createClient(url, allowSelfSigned); RBasicAuthentication rAuthentication = new RBasicAuthentication("testuser", System.getProperty("password.testuser")); String expResultName = "testuser"; rUser = rClient.login(rAuthentication); assertNotNull(rUser); } catch (Exception ex) { if (rClient != null) { rClient.release(); } fail("setUp: " + ex); } } @After public void tearDown() { if (rClient != null) { rClient.release(); } } /** * Test of listDirectories method, of class RUserRepositoryDirectoryCalls. */ @Test public void testUserRepositoryListDirectories() { // Test variables. String expRepoDirectoryName = null; String actualRepoDirectoryName = null; int expRepoDirectoryFileCount = 0; int actualRepoDirectoryFileCount = 0; RRepositoryDirectory repoDirectory = null; List<RRepositoryDirectory> listDirectories = null; boolean repoDirectoryFound = false; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. expRepoDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { repoDirectory = rUser.createDirectory(expRepoDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory failed: "; } if (exception == null) { try { actualRepoDirectoryName = repoDirectory.about().name; actualRepoDirectoryFileCount = repoDirectory.about().files.size(); } catch (Exception ex) { exception = ex; exceptionMsg = "repoDirectory.about failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(expRepoDirectoryName)) { repoDirectoryFound = true; break; } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (repoDirectory != null) { repoDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "repoDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertTrue(repoDirectoryFound); assertEquals(expRepoDirectoryName, actualRepoDirectoryName); assertEquals(expRepoDirectoryFileCount, actualRepoDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of listDirectories method, of class RUserRepositoryDirectoryCalls. */ @Test public void testUserRepositoryListDirectoriesAndFiles() { // Test variables. RRepositoryDirectory repoDirectory = null; String expRepoDirectoryName = null; String actualRepoDirectoryName = null; int expRepoDirectoryFileCount = 0; int actualRepoDirectoryFileCount = 0; RRepositoryDirectory repoDirectoryArchive = null; String expRepoDirectoryArchiveName = null; String actualRepoDirectoryArchiveName = null; int expRepoDirectoryArchiveFileCount = 0; int actualRepoDirectoryArchiveFileCount = 0; List<RRepositoryDirectory> listDirectories = null; boolean repoDirectoryArchiveFound = false; boolean repoDirectoryRestrictedFound = false; boolean repoDirectorySharedFound = false; boolean repoDirectoryPublicFound = false; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. expRepoDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { repoDirectory = rUser.createDirectory(expRepoDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory failed: "; } if (exception == null) { try { actualRepoDirectoryName = repoDirectory.about().name; actualRepoDirectoryFileCount = repoDirectory.about().files.size(); } catch (Exception ex) { exception = ex; exceptionMsg = "repoDirectory.about failed: "; } } if (exception == null) { try { repoDirectoryArchive = repoDirectory.archive(expRepoDirectoryName, null); expRepoDirectoryArchiveName = expRepoDirectoryName + ".archive"; repoDirectory = null; } catch (Exception ex) { exception = ex; exceptionMsg = "repoDirectory.archive failed: "; } } if (exception == null) { try { actualRepoDirectoryArchiveName = repoDirectoryArchive.about().name; actualRepoDirectoryArchiveFileCount = repoDirectoryArchive.about().files.size(); } catch (Exception ex) { exception = ex; exceptionMsg = "repoDirectoryArchive.about failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(expRepoDirectoryArchiveName)) { repoDirectoryArchiveFound = true; } else if (directory.about().name.equalsIgnoreCase(RRepositoryDirectoryDetails.SYSTEM_RESTRICTED)) { repoDirectoryRestrictedFound = true; } else if (directory.about().name.equalsIgnoreCase(RRepositoryDirectoryDetails.SYSTEM_SHARED)) { repoDirectorySharedFound = true; } else if (directory.about().name.equalsIgnoreCase(RRepositoryDirectoryDetails.SYSTEM_PUBLIC)) { repoDirectoryPublicFound = true; } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (repoDirectory != null) { repoDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "repoDirectory.delete failed: "; } try { if (repoDirectoryArchive != null) { repoDirectoryArchive.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "repoDirectoryArchive.delete failed: "; } if (exception == null) { // Test assertions. assertTrue(repoDirectoryArchiveFound); assertTrue(repoDirectoryRestrictedFound); assertTrue(repoDirectorySharedFound); assertTrue(repoDirectoryPublicFound); assertEquals(expRepoDirectoryArchiveName, actualRepoDirectoryArchiveName); assertEquals(expRepoDirectoryArchiveFileCount, actualRepoDirectoryArchiveFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test RUserRepositoryFileCalls.listFiles(categoryFilter, directoryFilter). */ @Test public void testUserRepositoryListDirectoriesGoodFilters() { // Test variables. List<RRepositoryDirectory> listDirectories = null; List<RRepositoryFile> listFilesExampleDirectory = null; List<RRepositoryFile> listFilesExampleScripts = null; List<RRepositoryFile> listFilesExampleBinary = null; String exampleFraudScoreDirectory = "example-fraud-score"; int fraudExampleTotalFileCount = 2; int fraudExampleScriptFileCount = 1; boolean fraudExampleScriptsAreScripts = false; int fraudExampleBinaryFileCount = 1; boolean fraudExampleBinaryAreBinary = false; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. try { listDirectories = rUser.listDirectories((RRepositoryFile.Category) null, exampleFraudScoreDirectory); for(RRepositoryDirectory dir : listDirectories) { if(dir.about().name.equals(exampleFraudScoreDirectory)) { listFilesExampleDirectory = dir.about().files; } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories(null, directory) failed: "; } if(exception == null) { try { listDirectories = rUser.listDirectories(RRepositoryFile.Category.RSCRIPT, exampleFraudScoreDirectory); for(RRepositoryDirectory dir : listDirectories) { if(dir.about().name.equals(exampleFraudScoreDirectory)) { listFilesExampleScripts = dir.about().files; break; } } for(RRepositoryFile scriptFile : listFilesExampleScripts) { if(scriptFile.about().category != RRepositoryFile.Category.RSCRIPT) { fraudExampleScriptsAreScripts = false; break; } else { fraudExampleScriptsAreScripts = true; } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listFiles(RSCRIPT, directory) failed: "; } } if(exception == null) { try { listDirectories = rUser.listDirectories(RRepositoryFile.Category.RBINARY, exampleFraudScoreDirectory); for(RRepositoryDirectory dir : listDirectories) { if(dir.about().name.equals(exampleFraudScoreDirectory)) { listFilesExampleBinary = dir.about().files; } } for(RRepositoryFile binFile : listFilesExampleBinary) { if(binFile.about().category != RRepositoryFile.Category.RBINARY) { fraudExampleBinaryAreBinary = false; break; } else { fraudExampleBinaryAreBinary = true; } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listFiles(RBINARY, directory) failed: "; } } if (exception == null) { // Test assertions. assertEquals(fraudExampleTotalFileCount, listFilesExampleDirectory.size()); assertEquals(fraudExampleScriptFileCount, listFilesExampleScripts.size()); assertTrue(fraudExampleScriptsAreScripts); assertEquals(fraudExampleBinaryFileCount, listFilesExampleBinary.size()); assertTrue(fraudExampleBinaryAreBinary); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test RUserRepositoryDirectoryCalls.listDirectories(categoryFilter, directoryFilter). */ @Test public void testUserRepositoryListDirectoriesBadFilters() { // Test variables. List<RRepositoryDirectory> listDirectories = null; RClientException clientEx = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. try { listDirectories = rUser.listDirectories((RRepositoryFile.Category) null, "dir-not-found"); } catch (RClientException cex) { clientEx = cex; } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories(null, dir-not-found) failed: "; } if (exception == null) { // Test assertions. assertNotNull(clientEx); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of copyDirectory method, of class RUserRepositoryDirectoryCalls. */ @Test public void testUserRepositoryCopyDirectoryAll() { // Test variables. String sourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFile = null; int expSourceDirectoryFileCount = 1; int sourceDirectoryFileCount = 0; String destinationDirectoryName = null; RRepositoryDirectory destinationDirectory = null; int expDestinationDirectoryFileCount = 1; int destinationDirectoryFileCount = 0; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. sourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(sourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } destinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { destinationDirectory = rUser.createDirectory(destinationDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory destination failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testUserRepositoryCopyDirectory.R"; options.directory = sourceDirectory.about().name; sourceFile = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } if (exception == null) { try { rUser.copyDirectory(sourceDirectory.about().name, destinationDirectory.about().name, null); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.copyDirectory failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(sourceDirectoryName)) { sourceDirectoryFileCount = directory.about().files.size(); } else if (directory.about().name.equalsIgnoreCase(destinationDirectoryName)) { destinationDirectoryFileCount = directory.about().files.size(); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceFile != null) { sourceFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (destinationDirectory != null) { destinationDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expSourceDirectoryFileCount, sourceDirectoryFileCount); assertEquals(expDestinationDirectoryFileCount, destinationDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of copyDirectory method, of class RUserRepositoryDirectoryCalls. */ @Test public void testUserRepositoryCopyDirectorySome() { // Test variables. String sourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFile = null; int expSourceDirectoryFileCount = 1; int sourceDirectoryFileCount = 0; String destinationDirectoryName = null; RRepositoryDirectory destinationDirectory = null; int expDestinationDirectoryFileCount = 1; int destinationDirectoryFileCount = 0; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. sourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(sourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } destinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { destinationDirectory = rUser.createDirectory(destinationDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory destination failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testUserRepositoryCopyDirectory.R"; options.directory = sourceDirectory.about().name; sourceFile = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } if (exception == null) { try { rUser.copyDirectory(sourceDirectory.about().name, destinationDirectory.about().name, Arrays.asList(sourceFile)); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.copyDirectory failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(sourceDirectoryName)) { sourceDirectoryFileCount = directory.about().files.size(); } else if (directory.about().name.equalsIgnoreCase(destinationDirectoryName)) { destinationDirectoryFileCount = directory.about().files.size(); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceFile != null) { sourceFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (destinationDirectory != null) { destinationDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expSourceDirectoryFileCount, sourceDirectoryFileCount); assertEquals(expDestinationDirectoryFileCount, destinationDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of moveDirectory method, of class RUserRepositoryDirectoryCalls. */ @Test public void testUserRepositoryMoveDirectoryAll() { // Test variables. String sourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFile = null; int expSourceDirectoryFileCount = 0; int sourceDirectoryFileCount = 0; String destinationDirectoryName = null; RRepositoryDirectory destinationDirectory = null; RRepositoryFile destinationFile = null; int expDestinationDirectoryFileCount = 1; int destinationDirectoryFileCount = 0; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. sourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(sourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } destinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { destinationDirectory = rUser.createDirectory(destinationDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory destination failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testUserRepositoryMoveDirectory.R"; options.directory = sourceDirectory.about().name; sourceFile = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } if (exception == null) { try { rUser.moveDirectory(sourceDirectory.about().name, destinationDirectory.about().name, null); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.moveDirectory failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(sourceDirectoryName)) { sourceDirectoryFileCount = directory.about().files.size(); } else if (directory.about().name.equalsIgnoreCase(destinationDirectoryName)) { destinationDirectoryFileCount = directory.about().files.size(); destinationFile = (RRepositoryFile) directory.about().files.get(0); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (destinationFile != null) { destinationFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (destinationDirectory != null) { destinationDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expSourceDirectoryFileCount, sourceDirectoryFileCount); assertEquals(expDestinationDirectoryFileCount, destinationDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of moveDirectory method, of class RUserRepositoryDirectoryCalls. */ @Test public void testUserRepositoryMoveDirectorySome() { // Test variables. String sourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFile = null; int expSourceDirectoryFileCount = 0; int sourceDirectoryFileCount = 0; String destinationDirectoryName = null; RRepositoryDirectory destinationDirectory = null; RRepositoryFile destinationFile = null; int expDestinationDirectoryFileCount = 1; int destinationDirectoryFileCount = 0; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. sourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(sourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } destinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { destinationDirectory = rUser.createDirectory(destinationDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory destination failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testUserRepositoryMoveDirectory.R"; options.directory = sourceDirectory.about().name; sourceFile = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } if (exception == null) { try { rUser.moveDirectory(sourceDirectory.about().name, destinationDirectory.about().name, Arrays.asList(sourceFile)); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.moveDirectory failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(sourceDirectoryName)) { sourceDirectoryFileCount = directory.about().files.size(); } else if (directory.about().name.equalsIgnoreCase(destinationDirectoryName)) { destinationDirectoryFileCount = directory.about().files.size(); destinationFile = (RRepositoryFile) directory.about().files.get(0); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (destinationFile != null) { destinationFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (destinationDirectory != null) { destinationDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expSourceDirectoryFileCount, sourceDirectoryFileCount); assertEquals(expDestinationDirectoryFileCount, destinationDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of rename method, of class RRepositoryDirectory. */ @Test public void testRepositoryDirectoryRename() { // Test variables. String expSourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFile = null; boolean sourceDirectoryFound = false; RRepositoryDirectory destinationDirectory = null; RRepositoryFile destinationFile = null; boolean destinationDirectoryFound = false; String expDestinationDirectoryName = null; int expDestinationDirectoryFileCount = 1; int destinationDirectoryFileCount = 0; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. expSourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(expSourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testRepositoryDirectoryRename.R"; options.directory = sourceDirectory.about().name; sourceFile = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } expDestinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { destinationDirectory = sourceDirectory.rename(expDestinationDirectoryName); sourceFile = null; sourceDirectory = null; } catch (Exception ex) { exception = ex; exceptionMsg = "sourceDirectory.rename failed: "; } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(expSourceDirectoryName)) { sourceDirectoryFound = true; } else if (directory.about().name.equalsIgnoreCase(expDestinationDirectoryName)) { destinationDirectoryFound = true; destinationDirectoryFileCount = directory.about().files.size(); destinationFile = (RRepositoryFile) directory.about().files.get(0); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceFile != null) { sourceFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceFile.delete failed: "; } try { if (destinationFile != null) { destinationFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (destinationDirectory != null) { destinationDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertFalse(sourceDirectoryFound); assertTrue(destinationDirectoryFound); assertEquals(expDestinationDirectoryFileCount, destinationDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of archive method, of class RRepositoryDirectory. */ @Test public void testRepositoryDirectoryArchiveAll() { // Test variables. String expSourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFile = null; boolean sourceDirectoryFound = false; String expDestinationDirectoryName = null; RRepositoryDirectory archiveDirectory = null; boolean archiveDirectoryFound = false; String expArchiveDirectoryName = null; int archiveDirectoryFileCount = 0; int expArchiveDirectoryFileCount = 1; RRepositoryFile archiveFile = null; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. expSourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(expSourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testRepositoryDirectoryArchive.R"; options.directory = sourceDirectory.about().name; sourceFile = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } expDestinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); expArchiveDirectoryName = expDestinationDirectoryName + ".archive"; try { archiveDirectory = sourceDirectory.archive(expDestinationDirectoryName, null); sourceFile = null; sourceDirectory = null; } catch (Exception ex) { exception = ex; exceptionMsg = "sourceDirectory.archive failed: "; } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(expSourceDirectoryName)) { sourceDirectoryFound = true; } else if (directory.about().name.equalsIgnoreCase(expArchiveDirectoryName)) { archiveDirectoryFound = true; archiveDirectoryFileCount = directory.about().files.size(); archiveFile = (RRepositoryFile) directory.about().files.get(0); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceFile != null) { sourceFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceFile.delete failed: "; } try { if (archiveFile != null) { archiveFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "archiveFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (archiveDirectory != null) { archiveDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "archiveDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertFalse(sourceDirectoryFound); assertTrue(archiveDirectoryFound); assertEquals(expArchiveDirectoryFileCount, archiveDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of archive method, of class RRepositoryDirectory. */ @Test public void testRepositoryDirectoryArchiveSome() { // Test variables. String expSourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFileOne = null; RRepositoryFile sourceFileTwo = null; boolean sourceDirectoryFound = false; String expDestinationDirectoryName = null; RRepositoryDirectory archiveDirectory = null; boolean archiveDirectoryFound = false; String expArchiveDirectoryName = null; int sourceDirectoryFileCount = 0; int expSourceDirectoryFileCount = 1; int archiveDirectoryFileCount = 0; int expArchiveDirectoryFileCount = 1; RRepositoryFile sourceFile = null; RRepositoryFile archiveFile = null; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. expSourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(expSourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testRepositoryDirectoryArchiveOne.R"; options.directory = sourceDirectory.about().name; sourceFileOne = rUser.writeFile("x <- rnorm(100)", options); options.filename = "testRepositoryDirectoryArchiveTwo.R"; sourceFileTwo = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } expDestinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); expArchiveDirectoryName = expDestinationDirectoryName + ".archive"; try { archiveDirectory = sourceDirectory.archive(expDestinationDirectoryName, Arrays.asList(sourceFileTwo)); } catch (Exception ex) { exception = ex; exceptionMsg = "sourceDirectory.archive failed: "; } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(expSourceDirectoryName)) { sourceDirectoryFound = true; sourceDirectoryFileCount = directory.about().files.size(); sourceFile = (RRepositoryFile) directory.about().files.get(0); } else if (directory.about().name.equalsIgnoreCase(expArchiveDirectoryName)) { archiveDirectoryFound = true; archiveDirectoryFileCount = directory.about().files.size(); archiveFile = (RRepositoryFile) directory.about().files.get(0); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceFile != null) { sourceFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceFile.delete failed: "; } try { if (archiveFile != null) { archiveFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "archiveFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (archiveDirectory != null) { archiveDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "archiveDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertTrue(sourceDirectoryFound); assertTrue(archiveDirectoryFound); assertEquals(expSourceDirectoryFileCount, sourceDirectoryFileCount); assertEquals(expArchiveDirectoryFileCount, archiveDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of update method, of class RRepositoryDirectory. */ @Test public void testRepositoryDirectoryUpdateAll() { // Test variables. String expSourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFileOne = null; RRepositoryFile sourceFileTwo = null; int privateFileCount = 0; int expPrivateFileCount = 0; int publicFileCount = 0; int expPublicFileCount = 2; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. expSourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(expSourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testRepositoryDirectoryUpdateOne.R"; options.directory = sourceDirectory.about().name; sourceFileOne = rUser.writeFile("x <- rnorm(100)", options); options.filename = "testRepositoryDirectoryUpdateTwo.R"; sourceFileTwo = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } try { RepoAccessControlOptions accessControlOptions = new RepoAccessControlOptions(); accessControlOptions.published = true; sourceDirectory.update(accessControlOptions, null); } catch (Exception ex) { exception = ex; exceptionMsg = "sourceDirectory.update failed: "; } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(expSourceDirectoryName)) { for (RRepositoryFile file : directory.about().files) { if (file.about().access.equals("Private")) { privateFileCount++; } else if (file.about().access.equals("Public")) { publicFileCount++; } } } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expPrivateFileCount, privateFileCount); assertEquals(expPublicFileCount, publicFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of update method, of class RRepositoryDirectory. */ @Test public void testRepositoryDirectoryUpdateSome() { // Test variables. String expSourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFileOne = null; RRepositoryFile sourceFileTwo = null; int privateFileCount = 0; int expPrivateFileCount = 1; int publicFileCount = 0; int expPublicFileCount = 1; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. expSourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(expSourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testRepositoryDirectoryUpdateOne.R"; options.directory = sourceDirectory.about().name; sourceFileOne = rUser.writeFile("x <- rnorm(100)", options); options.filename = "testRepositoryDirectoryUpdateTwo.R"; sourceFileTwo = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } try { RepoAccessControlOptions accessControlOptions = new RepoAccessControlOptions(); accessControlOptions.published = true; sourceDirectory.update(accessControlOptions, Arrays.asList(sourceFileTwo)); } catch (Exception ex) { exception = ex; exceptionMsg = "sourceDirectory.update failed: "; } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(expSourceDirectoryName)) { for (RRepositoryFile file : directory.about().files) { if (file.about().access.equals("Private")) { privateFileCount++; } else if (file.about().access.equals("Public")) { publicFileCount++; } } } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expPrivateFileCount, privateFileCount); assertEquals(expPublicFileCount, publicFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of copyFiles method, of class RUserRepositoryFileCalls. */ @Test public void testUserRepositoryCopyFiles() { // Test variables. String sourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFile = null; int expSourceDirectoryFileCount = 1; int sourceDirectoryFileCount = 0; String destinationDirectoryName = null; RRepositoryDirectory destinationDirectory = null; int expDestinationDirectoryFileCount = 1; int destinationDirectoryFileCount = 0; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. sourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(sourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } destinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { destinationDirectory = rUser.createDirectory(destinationDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory destination failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testUserRepositoryCopyFiles.R"; options.directory = sourceDirectory.about().name; sourceFile = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } if (exception == null) { try { rUser.copyFiles(destinationDirectory.about().name, Arrays.asList(sourceFile), null); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.copyFiles failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(sourceDirectoryName)) { sourceDirectoryFileCount = directory.about().files.size(); } else if (directory.about().name.equalsIgnoreCase(destinationDirectoryName)) { destinationDirectoryFileCount = directory.about().files.size(); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceFile != null) { sourceFile.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceFile.delete failed: "; } try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (destinationDirectory != null) { destinationDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expSourceDirectoryFileCount, sourceDirectoryFileCount); assertEquals(expDestinationDirectoryFileCount, destinationDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of copyFiles method, of class RUserRepositoryFileCalls. */ @Test public void testUserRepositoryMoveFiles() { // Test variables. String sourceDirectoryName = null; RRepositoryDirectory sourceDirectory = null; RRepositoryFile sourceFileOne = null; RRepositoryFile sourceFileTwo = null; int expSourceDirectoryFileCount = 0; int sourceDirectoryFileCount = 0; String destinationDirectoryName = null; RRepositoryDirectory destinationDirectory = null; int expDestinationDirectoryFileCount = 2; int destinationDirectoryFileCount = 0; List<RRepositoryDirectory> listDirectories = null; // Test error handling. Exception exception = null; String exceptionMsg = ""; Exception cleanupException = null; String cleanupExceptionMsg = ""; // Test. sourceDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { sourceDirectory = rUser.createDirectory(sourceDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory sourceDirectory failed: "; } destinationDirectoryName = DeployrUtil.getUniqueDirectoryName(); try { destinationDirectory = rUser.createDirectory(destinationDirectoryName); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.createDirectory destination failed: "; } if (exception == null) { try { RepoUploadOptions options = new RepoUploadOptions(); options.filename = "testUserRepositoryMoveFilesOne.R"; options.directory = sourceDirectory.about().name; sourceFileOne = rUser.writeFile("x <- rnorm(100)", options); options.filename = "testUserRepositoryMoveFilesTwo.R"; sourceFileTwo = rUser.writeFile("x <- rnorm(100)", options); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.writeFile failed: "; } } if (exception == null) { try { rUser.moveFiles(destinationDirectory.about().name, Arrays.asList(sourceFileOne, sourceFileTwo)); } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.moveFiles failed: "; } } if (exception == null) { try { listDirectories = rUser.listDirectories(true, true, true, true); // search for filename for (RRepositoryDirectory directory : listDirectories) { if (directory.about().name.equalsIgnoreCase(sourceDirectoryName)) { sourceDirectoryFileCount = directory.about().files.size(); } else if (directory.about().name.equalsIgnoreCase(destinationDirectoryName)) { destinationDirectoryFileCount = directory.about().files.size(); } } } catch (Exception ex) { exception = ex; exceptionMsg = "rUser.listDirectories failed: "; } } // Test cleanup. try { if (sourceDirectory != null) { sourceDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "sourceDirectory.delete failed: "; } try { if (destinationDirectory != null) { destinationDirectory.delete(); } } catch (Exception ex) { cleanupException = ex; cleanupExceptionMsg = "destinationDirectory.delete failed: "; } if (exception == null) { // Test assertions. assertEquals(expSourceDirectoryFileCount, sourceDirectoryFileCount); assertEquals(expDestinationDirectoryFileCount, destinationDirectoryFileCount); } else { fail(exceptionMsg + exception.getMessage()); } // Test cleanup errors. if (cleanupException != null) { fail(cleanupExceptionMsg + cleanupException.getMessage()); } } /** * Test of uploadFile method, of class RUserRepositoryFileCalls. */ }