package pl.edu.icm.saos.search.config.service; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.junit.Test; import com.google.common.io.Files; import static pl.edu.icm.saos.search.FilesAssert.*; import static junit.framework.Assert.*; /** * @author madryk */ public class SolrHomeLocationPolicyTest { @Test public void initialize_TEMPORARY() throws IOException { // given SolrHomeLocationPolicy solrHomeLocationPolicy = new SolrHomeLocationPolicy(); solrHomeLocationPolicy.setConfigurationPath(null); // when solrHomeLocationPolicy.initialize(); String actualSolrHomePath = solrHomeLocationPolicy.getSolrHome(); File actualSolrHome = new File(actualSolrHomePath); // then assertEmptyDirectory(actualSolrHome); File javaTmpDir = new File(System.getProperty("java.io.tmpdir")); assertTrue(FileUtils.directoryContains(javaTmpDir, actualSolrHome)); FileUtils.deleteQuietly(actualSolrHome); } @Test public void initialize_CUSTOM() throws IOException { // given SolrHomeLocationPolicy solrHomeLocationPolicy = new SolrHomeLocationPolicy(); File solrCustomHome = Files.createTempDir(); solrHomeLocationPolicy.setConfigurationPath(solrCustomHome.getAbsolutePath()); // when solrHomeLocationPolicy.initialize(); String actualSolrHomePath = solrHomeLocationPolicy.getSolrHome(); // then assertEquals(solrCustomHome.getAbsolutePath(), actualSolrHomePath); FileUtils.deleteQuietly(solrCustomHome); } @Test public void cleanup_EMPTY() { // given SolrHomeLocationPolicy solrHomeLocationPolicy = new SolrHomeLocationPolicy(); solrHomeLocationPolicy.setConfigurationPath(null); solrHomeLocationPolicy.initialize(); String solrHomePath = solrHomeLocationPolicy.getSolrHome(); // when solrHomeLocationPolicy.cleanup(); // then assertFalse(new File(solrHomePath).exists()); } @Test public void cleanup_NOT_EMPTY() throws IOException { // given SolrHomeLocationPolicy solrHomeLocationPolicy = new SolrHomeLocationPolicy(); solrHomeLocationPolicy.setConfigurationPath(null); solrHomeLocationPolicy.initialize(); File solrHome = new File(solrHomeLocationPolicy.getSolrHome()); File solrHomeContentFile = new File(solrHome, "someFile"); solrHomeContentFile.createNewFile(); // when solrHomeLocationPolicy.cleanup(); // then assertTrue(solrHome.exists()); FileUtils.deleteQuietly(solrHome); } }