public RowSet getMockInputRowSet( final List<Object[]> rows ) { final AtomicInteger index = new AtomicInteger( 0 ); RowSet rowSet = mock( RowSet.class, Mockito.RETURNS_MOCKS ); Answer<Object[]> answer = new Answer<Object[]>() { @Override public Object[] answer( InvocationOnMock invocation ) throws Throwable { int i = index.getAndIncrement(); return i < rows.size() ? rows.get( i ) : null; } }; when( rowSet.getRowWait( anyLong(), any( TimeUnit.class ) ) ).thenAnswer( answer ); when( rowSet.getRow() ).thenAnswer( answer ); when( rowSet.isDone() ).thenAnswer( new Answer<Boolean>() { @Override public Boolean answer( InvocationOnMock invocation ) throws Throwable { return index.get() >= rows.size(); } } ); return rowSet; }
private StepMockHelper<DatabaseLookupMeta, DatabaseLookupData> createMockHelper() { StepMockHelper<DatabaseLookupMeta, DatabaseLookupData> mockHelper = new StepMockHelper<DatabaseLookupMeta, DatabaseLookupData>( "test DatabaseLookup", DatabaseLookupMeta.class, DatabaseLookupData.class ); when( mockHelper.logChannelInterfaceFactory.create( any(), any( LoggingObjectInterface.class ) ) ) .thenReturn( mockHelper.logChannelInterface ); when( mockHelper.trans.isRunning() ).thenReturn( true ); RowMeta inputRowMeta = new RowMeta(); RowSet rowSet = mock( RowSet.class ); when( rowSet.getRowWait( anyLong(), any( TimeUnit.class ) ) ).thenReturn( new Object[ 0 ] ).thenReturn( null ); when( rowSet.getRowMeta() ).thenReturn( inputRowMeta ); when( mockHelper.trans.findRowSet( anyString(), anyInt(), anyString(), anyInt() ) ).thenReturn( rowSet ); when( mockHelper.transMeta.findNextSteps( Matchers.any( StepMeta.class ) ) ) .thenReturn( Collections.singletonList( mock( StepMeta.class ) ) ); when( mockHelper.transMeta.findPreviousSteps( any( StepMeta.class ), anyBoolean() ) ) .thenReturn( Collections.singletonList( mock( StepMeta.class ) ) ); return mockHelper; }
row = inputRowSet.getRowWait( 1, TimeUnit.MILLISECONDS ); if ( row != null ) { incrementLinesRead(); row = inputRowSet.getRowWait( 1, TimeUnit.MILLISECONDS ); if ( row == null ) {
textFileOutput.setInputRowMeta( inputRowMeta ); Mockito.when( rowSet.getRowWait( Mockito.anyInt(), (TimeUnit) Mockito.anyObject() ) ).thenReturn( rows.isEmpty() ? null : rows.iterator() .next() ); Mockito.when( rowSet.getRowMeta() ).thenReturn( inputRowMeta );