@Test public void testCreateBundleNoOverwriteCollectionExists() throws Exception { String tarName = "testCreateBundleNoOverwriteCollectionExists.tar"; String testSubdir = "testCreateBundleNoOverwriteCollectionExists"; String bunSubdir = "testCreateBundleNoOverwriteCollectionExistsBunSubdir"; String fileName = "fileName"; int count = 200; IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSFile irodsFile = null; String targetBunIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + bunSubdir); String targetBunFileAbsPath = targetBunIrodsCollection + "/" + tarName; irodsFile = new IRODSFile(irodsFileSystem, targetBunIrodsCollection); irodsFile.mkdir(); String targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); irodsFile = new IRODSFile(irodsFileSystem, targetIrodsCollection); irodsFile.mkdir(); String myTarget = ""; for (int i = 0; i < count; i++) { myTarget = targetIrodsCollection + "/c" + (10000 + i) + fileName; irodsFile = new IRODSFile(irodsFileSystem, myTarget); irodsFile.createNewFile(); } IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); IRODSServerProperties props = irodsFileSystem.getCommands().getIrodsServerProperties(); if (!props.isTheIrodsServerAtLeastAtTheGivenReleaseVersion( RemoteExecuteServiceImpl.STREAMING_API_CUTOFF)) { return; } BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); boolean didFail = false; try { bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods( targetBunFileAbsPath, targetIrodsCollection, ""); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods( targetBunFileAbsPath, targetIrodsCollection, ""); } catch (JargonException je) { didFail = true; } TestCase.assertTrue("expected this to fail with JargonException", didFail); }
@Test public void testCreateBundleWhenTarFileAlreadyExistsForceSpecified() throws Exception { String tarName = "testCreateBundleWhenTarFileAlreadyExistsForceSpecified.tar"; String testSubdir = "testCreateBundleWhenTarFileAlreadyExistsForceSpecified"; String bunSubdir = "testCreateBundleWhenTarFileAlreadyExistsForceSpecifiedBunSubdir"; String fileName = "fileName"; int count = 20; IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSServerProperties props = irodsFileSystem.getCommands().getIrodsServerProperties(); if (!props.isTheIrodsServerAtLeastAtTheGivenReleaseVersion( RemoteExecuteServiceImpl.STREAMING_API_CUTOFF)) { return; } IRODSFile irodsFile = null; String targetBunIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + bunSubdir); String targetBunFileAbsPath = targetBunIrodsCollection + "/" + tarName; irodsFile = new IRODSFile(irodsFileSystem, targetBunIrodsCollection); irodsFile.mkdir(); // create the tar file with the same name as the one I will want to // create later irodsFile = new IRODSFile(irodsFileSystem, targetBunFileAbsPath); irodsFile.createNewFile(); String targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); irodsFile = new IRODSFile(irodsFileSystem, targetIrodsCollection); irodsFile.mkdir(); String myTarget = ""; for (int i = 0; i < count; i++) { myTarget = targetIrodsCollection + "/c" + (10000 + i) + fileName; irodsFile = new IRODSFile(irodsFileSystem, myTarget); irodsFile.createNewFile(); } IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrodsWithForceOption( targetBunFileAbsPath, targetIrodsCollection, ""); assertionHelper.assertIrodsFileOrCollectionExists(targetBunFileAbsPath); }
@Test public void testGetAOFromFactory() throws Exception { IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); Assert.assertNotNull("null bulkFileOperationsAO from factory", bulkFileOperationsAO); }
@Test(expected = JargonException.class) public void testCreateBundleNoOverwriteCollectionDoesNotExist() throws Exception { String tarName = "testCreateBundleNoOverwriteCollectionDoesNotExist.tar"; String testSubdir = "testCreateBundleNoOverwriteCollectionDoesNotExist"; String bunSubdir = "testCreateBundleNoOverwriteCollectionDoesNotExistBunSubdir"; IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSFile irodsFile = null; String targetBunIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + bunSubdir); String targetBunFileAbsPath = targetBunIrodsCollection + "/" + tarName; irodsFile = new IRODSFile(irodsFileSystem, targetBunIrodsCollection); irodsFile.mkdir(); String targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods( targetBunFileAbsPath, targetIrodsCollection, ""); }
@Test(expected = JargonException.class) public void testExtractBundleNoOverwriteNoBulkWhenTargetCollectionAlreadyExists() throws Exception { // gets a SYS_COPY_ALREADY_IN_RESC -46000 String tarName = "testExtractBundleNoOverwriteNoBulkWhenTargetCollectionAlreadyExists.tar"; String testSubdir = "testExtractBundleNoOverwriteNoBulkWhenTargetCollectionAlreadyExists"; String bunSubdir = "testExtractBundleNoOverwriteNoBulkWhenTargetCollectionAlreadyExistsBunSubdir"; String testExtractTargetSubdir = "testExtractBundleNoOverwriteNoBulkWhenTargetCollectionAlreadyExistsTargetCollection"; String fileName = "fileName.txt"; int count = 5; IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSFile irodsFile = null; String targetBunIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + bunSubdir); String targetBunFileAbsPath = targetBunIrodsCollection + "/" + tarName; irodsFile = new IRODSFile(irodsFileSystem, targetBunIrodsCollection); irodsFile.mkdir(); String targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); irodsFile = new IRODSFile(irodsFileSystem, targetIrodsCollection); irodsFile.mkdir(); String myTarget = ""; for (int i = 0; i < count; i++) { myTarget = targetIrodsCollection + "/c" + (10000 + i) + fileName; irodsFile = new IRODSFile(irodsFileSystem, myTarget); irodsFile.createNewFile(); } IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods( targetBunFileAbsPath, targetIrodsCollection, ""); // extract the bun file now to a different subdir targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testExtractTargetSubdir); bulkFileOperationsAO.extractABundleIntoAnIrodsCollection( targetBunFileAbsPath, targetIrodsCollection, ""); // repeat the same operation, causing an overwrite situation, should get // an error bulkFileOperationsAO.extractABundleIntoAnIrodsCollection( targetBunFileAbsPath, targetIrodsCollection, ""); }
@Test(expected = IllegalArgumentException.class) public void testCreateBundleNoOverwriteCollectionExistsBlankBun() throws Exception { IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods("", "target", ""); }
@Test(expected = JargonException.class) public void testCreateBundleWhenTarFileAlreadyExists() throws Exception { String tarName = "testCreateBundleWhenTarFileAlreadyExists.tar"; String testSubdir = "testCreateBundleWhenTarFileAlreadyExists"; String bunSubdir = "testCreateBundleWhenTarFileAlreadyExistsBunSubdir"; String fileName = "fileName"; int count = 20; IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSFile irodsFile = null; String targetBunIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + bunSubdir); String targetBunFileAbsPath = targetBunIrodsCollection + "/" + tarName; irodsFile = new IRODSFile(irodsFileSystem, targetBunIrodsCollection); irodsFile.mkdir(); // create the tar file with the same name as the one I will want to // create later irodsFile = new IRODSFile(irodsFileSystem, targetBunFileAbsPath); irodsFile.createNewFile(); String targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); irodsFile = new IRODSFile(irodsFileSystem, targetIrodsCollection); irodsFile.mkdir(); String myTarget = ""; for (int i = 0; i < count; i++) { myTarget = targetIrodsCollection + "/c" + (10000 + i) + fileName; irodsFile = new IRODSFile(irodsFileSystem, myTarget); irodsFile.createNewFile(); } IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods( targetBunFileAbsPath, targetIrodsCollection, ""); }
/* * the semantics of how 'data not found' is treated in this version of * jargon is different than how it is treated in jargon-core at the * connection level, that makes detection of this error difficult. For the * time being, semantic changes in the interpretation of this condition are * to be avoided. */ @Ignore public void testExtractBundleNoOverwriteWithBulkSpecifyWrongResource() throws Exception { String tarName = "testExtractBundleNoOverwriteWithBulkSpecifyWrongResource.tar"; String testSubdir = "testExtractBundleNoOverwriteWithBulkSpecifyWrongResource"; String bunSubdir = "testExtractBundleNoOverwriteWithBulkSpecifyWrongResourceBunSubdir"; String testExtractTargetSubdir = "testExtractBundleNoOverwriteWithBulkSpecifyWrongResourceTargetCollection"; String testResource = testingProperties.getProperty(TestingPropertiesHelper.IRODS_RESOURCE_KEY); String fileName = "fileName.txt"; int count = 5; IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSFile irodsFile = null; String targetBunIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + bunSubdir); String targetBunFileAbsPath = targetBunIrodsCollection + "/" + tarName; irodsFile = new IRODSFile(irodsFileSystem, targetBunIrodsCollection); irodsFile.mkdir(); String targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); irodsFile = new IRODSFile(irodsFileSystem, targetIrodsCollection); irodsFile.mkdir(); String myTarget = ""; for (int i = 0; i < count; i++) { myTarget = targetIrodsCollection + "/c" + (10000 + i) + fileName; irodsFile = new IRODSFile(irodsFileSystem, myTarget); irodsFile.createNewFile(); } IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods( targetBunFileAbsPath, targetIrodsCollection, testResource); // extract the bun file now to a different subdir targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testExtractTargetSubdir); IRODSFile extractSubdir = new IRODSFile(irodsFileSystem, targetIrodsCollection); extractSubdir.mkdirs(); bulkFileOperationsAO.extractABundleIntoAnIrodsCollectionWithBulkOperationOptimization( targetBunFileAbsPath, targetIrodsCollection, testingProperties.getProperty(TestingPropertiesHelper.IRODS_SECONDARY_RESOURCE_KEY)); IRODSFile targetColl = new IRODSFile(irodsFileSystem, targetIrodsCollection); targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); IRODSFile sourceColl = new IRODSFile(irodsFileSystem, targetIrodsCollection); // assertionHelper.assertTwoFilesAreEqualByRecursiveTreeComparison( // sourceColl, targetColl); }
@Test public void testExtractBundleNoOverwriteWithBulk() throws Exception { String tarName = "testExtractBundleNoOverwriteWithBulk.tar"; String testSubdir = "testExtractBundleNoOverwriteWithBulk"; String bunSubdir = "testExtractBundleNoOverwriteWithBulkBunSubdir"; String testExtractTargetSubdir = "testExtractBundleNoOverwriteWithBulkTargetCollection"; String fileName = "fileName.txt"; int count = 5; IRODSServerProperties props = irodsFileSystem.getCommands().getIrodsServerProperties(); if (!props.isTheIrodsServerAtLeastAtTheGivenReleaseVersion( RemoteExecuteServiceImpl.STREAMING_API_CUTOFF)) { return; } IRODSFile irodsFile = null; String targetBunIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + bunSubdir); String targetBunFileAbsPath = targetBunIrodsCollection + "/" + tarName; irodsFile = new IRODSFile(irodsFileSystem, targetBunIrodsCollection); irodsFile.mkdir(); String targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); irodsFile = new IRODSFile(irodsFileSystem, targetIrodsCollection); irodsFile.mkdir(); String myTarget = ""; for (int i = 0; i < count; i++) { myTarget = targetIrodsCollection + "/c" + (10000 + i) + fileName; irodsFile = new IRODSFile(irodsFileSystem, myTarget); irodsFile.createNewFile(); } IRODSAccessObjectFactory accessObjectFactory = IRODSAccessObjectFactoryImpl.instance(irodsFileSystem.getCommands()); BulkFileOperationsAO bulkFileOperationsAO = accessObjectFactory.getBulkFileOperationsAO(); bulkFileOperationsAO.createABundleFromIrodsFilesAndStoreInIrods( targetBunFileAbsPath, targetIrodsCollection, ""); // extract the bun file now to a different subdir targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testExtractTargetSubdir); bulkFileOperationsAO.extractABundleIntoAnIrodsCollectionWithBulkOperationOptimization( targetBunFileAbsPath, targetIrodsCollection, ""); IRODSFile targetColl = new IRODSFile(irodsFileSystem, targetIrodsCollection); targetIrodsCollection = testingPropertiesHelper.buildIRODSCollectionAbsolutePathFromTestProperties( testingProperties, IRODS_TEST_SUBDIR_PATH + "/" + testSubdir); IRODSFile sourceColl = new IRODSFile(irodsFileSystem, targetIrodsCollection); // assertionHelper.assertTwoFilesAreEqualByRecursiveTreeComparison( // sourceColl, targetColl); }