@Test public void testImportTrans_patchTransEntries_when_directory_path_starts_with_variable() throws KettleException { JobEntryInterface jobEntryInterface = createJobEntry( "" ); StepMetaInterface stepMeta = createStepMeta( "${USER_VARIABLE}/myDir" ); RepositoryImporter importer = createRepositoryImporter( jobEntryInterface, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importTransformation( entityNode, feedback ); verify( (HasRepositoryDirectories) stepMeta ).setDirectories( new String[] { "${USER_VARIABLE}/myDir" } ); StepMetaInterface stepMeta2 = createStepMeta( "${USER_VARIABLE}/myDir" ); RepositoryImporter importerWithCompatibilityImportPath = createRepositoryImporter( jobEntryInterface, stepMeta2, false ); importerWithCompatibilityImportPath.setBaseDirectory( baseDirectory ); importerWithCompatibilityImportPath.importTransformation( entityNode, feedback ); verify( (HasRepositoryDirectories) stepMeta2 ).setDirectories( new String[] { ROOT_PATH + "/${USER_VARIABLE}/myDir" } ); }
@Test public void testImportTrans_patchTransEntries_without_variables() throws KettleException { JobEntryInterface jobEntryInterface = createJobEntry( "" ); StepMetaInterface stepMeta = createStepMeta( "/userName" ); RepositoryImporter importer = createRepositoryImporter( jobEntryInterface, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importTransformation( entityNode, feedback ); verify( (HasRepositoryDirectories) stepMeta ).setDirectories( new String[] { ROOT_PATH + USER_NAME_PATH } ); }
@Test public void testImportTrans_patchTransEntries_when_directory_path_ends_with_variable() throws KettleException { JobEntryInterface jobEntryInterface = createJobEntry( "" ); StepMetaInterface stepMeta = createStepMeta( "/myDir/${USER_VARIABLE}" ); RepositoryImporter importer = createRepositoryImporter( jobEntryInterface, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importTransformation( entityNode, feedback ); verify( (HasRepositoryDirectories) stepMeta ).setDirectories( new String[] { "/myDir/${USER_VARIABLE}" } ); StepMetaInterface stepMeta2 = createStepMeta( "/myDir/${USER_VARIABLE}" ); RepositoryImporter importerWithCompatibilityImportPath = createRepositoryImporter( jobEntryInterface, stepMeta2, false ); importerWithCompatibilityImportPath.setBaseDirectory( baseDirectory ); importerWithCompatibilityImportPath.importTransformation( entityNode, feedback ); verify( (HasRepositoryDirectories) stepMeta2 ).setDirectories( new String[] { ROOT_PATH + "/myDir/${USER_VARIABLE}" } ); }
@Test public void testImportTrans_patchTransEntries_with_variable() throws KettleException { JobEntryInterface jobEntryInterface = createJobEntry( "" ); StepMetaInterface stepMeta = createStepMeta( "${USER_VARIABLE}" ); RepositoryImporter importer = createRepositoryImporter( jobEntryInterface, stepMeta, true ); importer.setBaseDirectory( baseDirectory ); importer.importTransformation( entityNode, feedback ); verify( (HasRepositoryDirectories) stepMeta ).setDirectories( new String[] { "${USER_VARIABLE}" } ); }
@Override public boolean transformationElementRead( String xml, RepositoryImportFeedbackInterface feedback ) { try { Document doc = XMLHandler.loadXMLString( getOrCreateDb(), xml ); Node transformationNode = XMLHandler.getSubNode( doc, RepositoryExportSaxParser.STRING_TRANSFORMATION ); if ( !importTransformation( transformationNode, feedback ) ) { return false; } transformationNumber++; } catch ( Exception e ) { // Some unexpected error occurred during transformation import // This is usually a problem with a missing plugin or something // like that... // feedback.showError( BaseMessages.getString( PKG, "RepositoryImporter.UnexpectedErrorDuringTransformationImport.Title" ), BaseMessages.getString( PKG, "RepositoryImporter.UnexpectedErrorDuringTransformationImport.Message" ), e ); if ( !feedback.askContinueOnErrorQuestion( BaseMessages.getString( PKG, "RepositoryImporter.DoYouWantToContinue.Title" ), BaseMessages.getString( PKG, "RepositoryImporter.DoYouWantToContinue.Message" ) ) ) { return false; } } return true; }