package eu.dnetlib.iis.wf.affmatching.bucket.projectorg.read; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.*; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import eu.dnetlib.iis.wf.affmatching.bucket.projectorg.model.AffMatchDocumentProject; /** * @author madryk */ @RunWith(MockitoJUnitRunner.class) public class DocumentProjectFetcherTest { @InjectMocks private DocumentProjectFetcher documentProjectFetcher = new DocumentProjectFetcher(); @Mock private DocumentProjectReader firstDocumentProjectReader; @Mock private DocumentProjectReader secondDocumentProjectReader; @Mock private DocumentProjectMerger documentProjectMerger; @Mock private JavaSparkContext sparkContext; private String firstDocProjPath = "/docproj/first"; private String secondDocProjPath = "/docproj/second"; @Mock private JavaRDD<AffMatchDocumentProject> firstDocumentProjects; @Mock private JavaRDD<AffMatchDocumentProject> secondDocumentProjects; @Mock private JavaRDD<AffMatchDocumentProject> mergedDocumentProjects; @Before public void setup() { documentProjectFetcher.setFirstDocProjPath(firstDocProjPath); documentProjectFetcher.setSecondDocProjPath(secondDocProjPath); } //------------------------ TESTS -------------------------- @Test public void fetchDocumentProjects() { // given when(firstDocumentProjectReader.readDocumentProjects(sparkContext, firstDocProjPath)).thenReturn(firstDocumentProjects); when(secondDocumentProjectReader.readDocumentProjects(sparkContext, secondDocProjPath)).thenReturn(secondDocumentProjects); when(documentProjectMerger.merge(firstDocumentProjects, secondDocumentProjects)).thenReturn(mergedDocumentProjects); // execute JavaRDD<AffMatchDocumentProject> retDocumentProjects = documentProjectFetcher.fetchDocumentProjects(); // assert assertTrue(retDocumentProjects == mergedDocumentProjects); verify(firstDocumentProjectReader).readDocumentProjects(sparkContext, firstDocProjPath); verify(secondDocumentProjectReader).readDocumentProjects(sparkContext, secondDocProjPath); verify(documentProjectMerger).merge(firstDocumentProjects, secondDocumentProjects); } }