package info.jtrac.lucene; import info.jtrac.domain.Item; import java.io.File; import java.util.List; import junit.framework.TestCase; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class IndexSearcherTest extends TestCase { private ApplicationContext context; @Override public void setUp() { File home = new File("target/home"); if (!home.exists()) { home.mkdir(); } File file = new File("target/home/indexes"); if (!file.exists()) { file.mkdir(); } else { for (File f : file.listFiles()) { f.delete(); } } System.setProperty("jtrac.home", home.getAbsolutePath()); context = new FileSystemXmlApplicationContext("src/main/webapp/WEB-INF/applicationContext-lucene.xml"); } public void testFindItemIdsBySearchingWithinSummaryAndDetailFields() throws Exception { Item item = new Item(); item.setId(1); item.setSummary("this is a test summary"); item.setDetail("the quick brown fox jumped over the lazy dogs"); Indexer indexer = (Indexer) context.getBean("indexer"); indexer.index(item); IndexSearcher searcher = (IndexSearcher) context.getBean("indexSearcher"); List list = searcher.findItemIdsContainingText("lazy"); assertEquals(1, list.size()); list = searcher.findItemIdsContainingText("foo"); assertEquals(0, list.size()); list = searcher.findItemIdsContainingText("summary"); assertEquals(1, list.size()); } public void testIfUmlautsCanBeIndexedAndSearchedFor() { Item item = new Item(); item.setId(1); item.setSummary("this does not contain an umlaut"); item.setDetail("there is an umlaut right here --> �mlaut"); Indexer indexer = (Indexer) context.getBean("indexer"); indexer.index(item); IndexSearcher searcher = (IndexSearcher) context.getBean("indexSearcher"); List list = searcher.findItemIdsContainingText("�mlaut"); assertEquals(1, list.size()); } }