package pl.edu.icm.saos.search.config.service; import static org.mockito.Mockito.*; import org.junit.Before; import org.junit.Test; import pl.edu.icm.saos.search.config.model.IndexConfiguration; import com.google.common.collect.Lists; /** * @author madryk */ public class SolrLoaderTest { private final static String CONFIGURATION_PATH = "/some/path"; private SolrLoader solrLoader = new SolrLoader(); private SolrIndexConfigurationCopier indexConfigurationCopier = mock(SolrIndexConfigurationCopier.class); private IndexReloader indexReloader = mock(IndexReloader.class); private SolrHomeLocationPolicy solrHomeLocationPolicy = mock(SolrHomeLocationPolicy.class); private IndexConfiguration firstIndexConfiguration = new IndexConfiguration(); private IndexConfiguration secondIndexConfiguration = new IndexConfiguration(); @Before public void setUp() { when(solrHomeLocationPolicy.getSolrHome()).thenReturn(CONFIGURATION_PATH); solrLoader.setSolrHomeLocationPolicy(solrHomeLocationPolicy); solrLoader.setCopyConfiguration(true); solrLoader.setIndexesConfigurations(Lists.newArrayList(firstIndexConfiguration, secondIndexConfiguration)); solrLoader.setIndexConfigurationCopier(indexConfigurationCopier); solrLoader.setIndexReloader(indexReloader); } @Test public void load_WITH_COPYING() { solrLoader.load(); verify(indexConfigurationCopier).copyIndexConfiguration(firstIndexConfiguration, CONFIGURATION_PATH); verify(indexConfigurationCopier).copyIndexConfiguration(secondIndexConfiguration, CONFIGURATION_PATH); verify(indexReloader).reloadIndex(firstIndexConfiguration); verify(indexReloader).reloadIndex(secondIndexConfiguration); verifyNoMoreInteractions(indexConfigurationCopier, indexReloader); } @Test public void load_WITHOUT_COPYING() { solrLoader.setCopyConfiguration(false); solrLoader.load(); verifyZeroInteractions(indexConfigurationCopier); verify(indexReloader).reloadIndex(firstIndexConfiguration); verify(indexReloader).reloadIndex(secondIndexConfiguration); verifyNoMoreInteractions(indexReloader); } @Test public void shutdown_WITH_CLEANUP() { solrLoader.shutdown(); verify(indexConfigurationCopier).cleanupIndexConfiguration(firstIndexConfiguration, CONFIGURATION_PATH); verify(indexConfigurationCopier).cleanupIndexConfiguration(secondIndexConfiguration, CONFIGURATION_PATH); verify(solrHomeLocationPolicy).cleanup(); verifyNoMoreInteractions(indexConfigurationCopier); verifyZeroInteractions(indexReloader); } @Test public void shutdown_WITHOUT_CLEANUP() { solrLoader.setCopyConfiguration(false); solrLoader.shutdown(); verify(solrHomeLocationPolicy).cleanup(); verifyZeroInteractions(indexConfigurationCopier, indexReloader); } }