package pl.edu.icm.saos.search.indexing; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import java.util.Collection; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.common.SolrInputDocument; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import com.google.common.collect.Lists; /** * @author madryk */ @RunWith(MockitoJUnitRunner.class) public class JudgmentIndexingWriterTest { private JudgmentIndexingWriter judgmentIndexingWriter = new JudgmentIndexingWriter(); @Mock private SolrServer judgmentsSolrServer; @Captor private ArgumentCaptor<Collection<SolrInputDocument>> addDocumentsCaptor; @Before public void setUp() { judgmentIndexingWriter.setSolrServer(judgmentsSolrServer); } @Test public void write() throws Exception { SolrInputDocument firstDocument = new SolrInputDocument(); SolrInputDocument secondDocument = new SolrInputDocument(); judgmentIndexingWriter.write(Lists.newArrayList(firstDocument, secondDocument)); verify(judgmentsSolrServer, times(1)).add(addDocumentsCaptor.capture()); assertThat(addDocumentsCaptor.getValue(), containsInAnyOrder(firstDocument, secondDocument)); } }