@Test public void testImportJob_patchJobEntries_when_directory_path_ends_with_variable() throws KettleException { JobEntryInterface jobEntryInterface = createJobEntry( "/myDir/${USER_VARIABLE}" ); StepMetaInterface stepMeta = createStepMeta( "" ); RepositoryImporter importer = createRepositoryImporter( jobEntryInterface, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importJob( entityNode, feedback ); verify( (HasRepositoryDirectories) jobEntryInterface ).setDirectories( new String[] { "/myDir/${USER_VARIABLE}" } ); JobEntryInterface jobEntryInterface2 = createJobEntry( "/myDir/${USER_VARIABLE}" ); RepositoryImporter importerWithCompatibilityImportPath = createRepositoryImporter( jobEntryInterface2, stepMeta, false ); importerWithCompatibilityImportPath.setBaseDirectory( baseDirectory ); importerWithCompatibilityImportPath.importJob( entityNode, feedback ); verify( (HasRepositoryDirectories) jobEntryInterface2 ).setDirectories( new String[] { ROOT_PATH + "/myDir/${USER_VARIABLE}" } ); }
@Test public void testImportJob_patchJobEntries_with_variable() throws KettleException { JobEntryInterface jobEntryInterface = createJobEntry( "${USER_VARIABLE}" ); StepMetaInterface stepMeta = createStepMeta( "" ); RepositoryImporter importer = createRepositoryImporter( jobEntryInterface, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importJob( entityNode, feedback ); verify( (HasRepositoryDirectories) jobEntryInterface ).setDirectories( new String[]{ "${USER_VARIABLE}" } ); }
@Test public void testImportJob_patchJobEntries_when_directory_path_starts_with_variable() throws KettleException { JobEntryInterface jobEntryInterface = createJobEntry( "${USER_VARIABLE}/myDir" ); StepMetaInterface stepMeta = createStepMeta( "" ); RepositoryImporter importer = createRepositoryImporter( jobEntryInterface, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importJob( entityNode, feedback ); verify( (HasRepositoryDirectories) jobEntryInterface ).setDirectories( new String[] { "${USER_VARIABLE}/myDir" } ); JobEntryInterface jobEntryInterface2 = createJobEntry( "${USER_VARIABLE}/myDir" ); RepositoryImporter importerWithCompatibilityImportPath = createRepositoryImporter( jobEntryInterface2, stepMeta, false ); importerWithCompatibilityImportPath.setBaseDirectory( baseDirectory ); importerWithCompatibilityImportPath.importJob( entityNode, feedback ); verify( (HasRepositoryDirectories) jobEntryInterface2 ).setDirectories( new String[]{ ROOT_PATH + "/${USER_VARIABLE}/myDir" } ); }
@Test public void testImportJob_patchJobEntries_without_variables() throws KettleException { JobEntryInterface jobEntry = createJobEntry( "/userName" ); StepMetaInterface stepMeta = createStepMeta( "" ); RepositoryImporter importer = createRepositoryImporter( jobEntry, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importJob( entityNode, feedback ); verify( (HasRepositoryDirectories) jobEntry ).setDirectories( new String[]{ ROOT_PATH + USER_NAME_PATH } ); }
@Override public boolean jobElementRead( String xml, RepositoryImportFeedbackInterface feedback ) { try { Document doc = XMLHandler.loadXMLString( getOrCreateDb(), xml ); Node jobNode = XMLHandler.getSubNode( doc, RepositoryExportSaxParser.STRING_JOB ); if ( !importJob( jobNode, feedback ) ) { return false; } jobNumber++; } catch ( Exception e ) { // Some unexpected error occurred during job import // This is usually a problem with a missing plugin or something // like that... // showError( BaseMessages.getString( PKG, "RepositoryImporter.UnexpectedErrorDuringJobImport.Title" ), BaseMessages .getString( PKG, "RepositoryImporter.UnexpectedErrorDuringJobImport.Message" ), e ); if ( !feedback.askContinueOnErrorQuestion( BaseMessages.getString( PKG, "RepositoryImporter.DoYouWantToContinue.Title" ), BaseMessages.getString( PKG, "RepositoryImporter.DoYouWantToContinue.Message" ) ) ) { return false; } } return true; }