@Before public void setUp() { Job parentJob = new Job( null, new JobMeta() ); jobEntry = spy( new JobEntryColumnsExist( "" ) ); parentJob.getJobMeta().addJobEntry( new JobEntryCopy( jobEntry ) ); parentJob.setStopped( false ); jobEntry.setParentJob( parentJob ); parentJob.setLogLevel( LogLevel.NOTHING ); DatabaseMeta dbMeta = mock( DatabaseMeta.class ); jobEntry.setDatabase( dbMeta ); db = spy( new Database( jobEntry, dbMeta ) ); jobEntry.setParentJob( parentJob ); jobEntry.setTablename( TABLENAME ); jobEntry.setArguments( COLUMNS ); jobEntry.setSchemaname( SCHEMANAME ); }
public Object clone() { JobEntryColumnsExist je = (JobEntryColumnsExist) super.clone(); if ( arguments != null ) { int nrFields = arguments.length; je.allocate( nrFields ); System.arraycopy( arguments, 0, je.arguments, 0, nrFields ); } return je; }
/** * Copy information from the meta-data input to the dialog fields. */ public void getData() { if ( jobEntry.getName() != null ) { wName.setText( jobEntry.getName() ); } if ( jobEntry.getTablename() != null ) { wTablename.setText( jobEntry.getTablename() ); } if ( jobEntry.getSchemaname() != null ) { wSchemaname.setText( jobEntry.getSchemaname() ); } if ( jobEntry.getDatabase() != null ) { wConnection.setText( jobEntry.getDatabase().getName() ); } if ( jobEntry.getArguments() != null ) { for ( int i = 0; i < jobEntry.getArguments().length; i++ ) { TableItem ti = wFields.table.getItem( i ); if ( jobEntry.getArguments()[i] != null ) { ti.setText( 1, jobEntry.getArguments()[i] ); } } wFields.setRowNums(); wFields.optWidth( true ); } wName.selectAll(); wName.setFocus(); }
return; jobEntry.setName( wName.getText() ); jobEntry.setDatabase( jobMeta.findDatabase( wConnection.getText() ) ); jobEntry.setTablename( wTablename.getText() ); jobEntry.setSchemaname( wSchemaname.getText() ); jobEntry.setArguments( args );
logError( BaseMessages.getString( PKG, "JobEntryColumnsExist.Error.TablenameEmpty" ) ); return result; logError( BaseMessages.getString( PKG, "JobEntryColumnsExist.Error.ColumnameEmpty" ) ); return result; Database db = getNewDatabaseFromMeta(); db.shareVariablesWith( this ); try { String realSchemaname = environmentSubstitute( schemaname ); String realTablename = environmentSubstitute( tablename ); logDetailed( BaseMessages.getString( PKG, "JobEntryColumnsExist.Log.TableExists", realTablename ) ); String realColumnname = environmentSubstitute( arguments[i] ); logDetailed( BaseMessages.getString( PKG, "JobEntryColumnsExist.Log.ColumnExists", realColumnname, realTablename ) ); logError( BaseMessages.getString( PKG, "JobEntryColumnsExist.Log.ColumnNotExists", realColumnname, realTablename ) ); nrnotexistcolums++; logError( BaseMessages.getString( PKG, "JobEntryColumnsExist.Log.TableNotExists", realTablename ) ); logError( BaseMessages.getString( PKG, "JobEntryColumnsExist.Error.UnexpectedError", dbe.getMessage() ) ); } finally { if ( db != null ) {
@Test public void jobFail_columnNotExist() throws KettleException { doReturn( db ).when( jobEntry ).getNewDatabaseFromMeta(); doNothing().when( db ).connect( anyString(), anyString() ); doReturn( true ).when( db ).checkTableExists( anyString(), anyString() ); doReturn( false ).when( db ).checkColumnExists( anyString(), anyString(), anyString() ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be some errors", 1, result.getNrErrors() ); assertFalse( "Result should be false", result.getResult() ); verify( db, atLeastOnce() ).disconnect(); }
@Test public void jobFail_tableNameIsEmpty() throws KettleException { jobEntry.setTablename( null ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be error", 1, result.getNrErrors() ); assertFalse( "Result should be false", result.getResult() ); }
@Test public void jobFail_columnsArrayIsEmpty() throws KettleException { jobEntry.setArguments( null ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be error", 1, result.getNrErrors() ); assertFalse( "Result should be false", result.getResult() ); }
@Test public void jobFail_connectionIsNull() throws KettleException { jobEntry.setDatabase( null ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be error", 1, result.getNrErrors() ); assertFalse( "Result should be false", result.getResult() ); }
changed = jobEntry.hasChanged(); if ( jobEntry.getDatabase() == null && jobMeta.nrDatabases() == 1 ) { wConnection.select( 0 ); wlFields.setLayoutData( fdlFields ); int rows = jobEntry.getArguments() == null ? 1 : ( jobEntry.getArguments().length == 0 ? 0 : jobEntry.getArguments().length );
@Test public void jobSuccess() throws KettleException { doReturn( db ).when( jobEntry ).getNewDatabaseFromMeta(); doNothing().when( db ).connect( anyString(), anyString() ); doReturn( true ).when( db ).checkColumnExists( anyString(), anyString(), anyString() ); doReturn( true ).when( db ).checkTableExists( anyString(), anyString() ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be no error", 0, result.getNrErrors() ); assertTrue( "Result should be true", result.getResult() ); assertEquals( "Lines written", COLUMNS.length, result.getNrLinesWritten() ); verify( db, atLeastOnce() ).disconnect(); } }
@Test public void jobFail_tableNotExist() throws KettleException { when( jobEntry.getNewDatabaseFromMeta() ).thenReturn( db ); doNothing().when( db ).connect( anyString(), any() ); doReturn( false ).when( db ).checkTableExists( anyString(), anyString() ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be error", 1, result.getNrErrors() ); assertFalse( "Result should be false", result.getResult() ); verify( db, atLeastOnce() ).disconnect(); }
public void loadXML( Node entrynode, List<DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep, IMetaStore metaStore ) throws KettleXMLException { try { super.loadXML( entrynode, databases, slaveServers ); tablename = XMLHandler.getTagValue( entrynode, "tablename" ); schemaname = XMLHandler.getTagValue( entrynode, "schemaname" ); String dbname = XMLHandler.getTagValue( entrynode, "connection" ); connection = DatabaseMeta.findDatabase( databases, dbname ); Node fields = XMLHandler.getSubNode( entrynode, "fields" ); // How many field arguments? int nrFields = XMLHandler.countNodes( fields, "field" ); allocate( nrFields ); // Read them all... for ( int i = 0; i < nrFields; i++ ) { Node fnode = XMLHandler.getSubNodeByNr( fields, "field", i ); arguments[i] = XMLHandler.getTagValue( fnode, "name" ); } } catch ( KettleException e ) { throw new KettleXMLException( BaseMessages.getString( PKG, "JobEntryColumnsExist.Meta.UnableLoadXml" ), e ); } }