@Test public void specifyingTheSamePath_WithDifferentWildcards() throws Exception { final String fileExtensionTxt = ".txt"; final String fileExtensionXml = ".xml"; String[] args = new String[] { PATH_TO_FILE, PATH_TO_FILE }; jobEntry.setArguments( args ); jobEntry.setFilemasks( new String[] { fileExtensionTxt, fileExtensionXml } ); jobEntry.setArgFromPrevious( false ); jobEntry.execute( new Result(), 0 ); verify( jobEntry ).processFile( eq( PATH_TO_FILE ), eq( fileExtensionTxt ), any( Job.class ) ); verify( jobEntry ).processFile( eq( PATH_TO_FILE ), eq( fileExtensionXml ), any( Job.class ) ); }
@Before public void setUp() throws Exception { jobEntry = new JobEntryDeleteFiles(); Job parentJob = mock( Job.class ); doReturn( false ).when( parentJob ).isStopped(); jobEntry.setParentJob( parentJob ); JobMeta mockJobMeta = mock( JobMeta.class ); mockNamedClusterEmbedManager = mock( NamedClusterEmbedManager.class ); when( mockJobMeta.getNamedClusterEmbedManager() ).thenReturn( mockNamedClusterEmbedManager ); jobEntry.setParentJobMeta( mockJobMeta ); jobEntry = spy( jobEntry ); doReturn( true ).when( jobEntry ).processFile( anyString(), anyString(), eq( parentJob ) ); }
@Test public void filesPath_AreProcessed_ArgsOfPreviousMeta() throws Exception { jobEntry.setArgFromPrevious( true ); Result prevMetaResult = new Result(); List<RowMetaAndData> metaAndDataList = new ArrayList<>(); metaAndDataList.add( constructRowMetaAndData( PATH_TO_FILE, null ) ); prevMetaResult.setRows( metaAndDataList ); jobEntry.execute( prevMetaResult, 0 ); verify( jobEntry, times( metaAndDataList.size() ) ).processFile( anyString(), anyString(), any( Job.class ) ); }
@Test public void filesWithNoPath_AreNotProcessed_ArgsOfPreviousMeta() throws Exception { jobEntry.setArgFromPrevious( true ); Result prevMetaResult = new Result(); List<RowMetaAndData> metaAndDataList = new ArrayList<>(); metaAndDataList.add( constructRowMetaAndData( Const.EMPTY_STRING, null ) ); metaAndDataList.add( constructRowMetaAndData( STRING_SPACES_ONLY, null ) ); prevMetaResult.setRows( metaAndDataList ); jobEntry.execute( prevMetaResult, 0 ); verify( jobEntry, never() ).processFile( anyString(), anyString(), any( Job.class ) ); }
@Test public void filesWithPath_AreProcessed_ArgsOfCurrentJob() throws Exception { String[] args = new String[] { PATH_TO_FILE }; jobEntry.setArguments( args ); jobEntry.setFilemasks( new String[] { null, null } ); jobEntry.setArgFromPrevious( false ); jobEntry.execute( new Result(), 0 ); verify( jobEntry, times( args.length ) ).processFile( anyString(), anyString(), any( Job.class ) ); verify( mockNamedClusterEmbedManager ).passEmbeddedMetastoreKey( anyObject(), anyString() ); }
@Test public void filesWithNoPath_AreNotProcessed_ArgsOfCurrentJob() throws Exception { jobEntry.setArguments( new String[] { Const.EMPTY_STRING, STRING_SPACES_ONLY } ); jobEntry.setFilemasks( new String[] { null, null } ); jobEntry.setArgFromPrevious( false ); jobEntry.execute( new Result(), 0 ); verify( jobEntry, never() ).processFile( anyString(), anyString(), any( Job.class ) ); }
@Test public void filesPathVariables_AreProcessed_OnlyIfValueIsNotBlank() throws Exception { final String pathToFileBlankValue = "pathToFileBlankValue"; final String pathToFileValidValue = "pathToFileValidValue"; jobEntry.setVariable( pathToFileBlankValue, Const.EMPTY_STRING ); jobEntry.setVariable( pathToFileValidValue, PATH_TO_FILE ); jobEntry.setArguments( new String[] { asVariable( pathToFileBlankValue ), asVariable( pathToFileValidValue ) } ); jobEntry.setFilemasks( new String[] { null, null } ); jobEntry.setArgFromPrevious( false ); jobEntry.execute( new Result(), 0 ); verify( jobEntry ).processFile( eq( PATH_TO_FILE ), anyString(), any( Job.class ) ); }
if ( !processFile( filePath, fileMask, parentJob ) ) { numberOfErrFiles++;