From 06ff61c04db32abc7ba4bbaeee604482c343152e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 24 Jan 2012 22:49:53 -0500
Subject: [PATCH] Fairly functional Lucene backend for commits, blobs, and issues

---
 tests/com/gitblit/tests/IssuesTest.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/tests/com/gitblit/tests/IssuesTest.java b/tests/com/gitblit/tests/IssuesTest.java
index 26b5995..c475c46 100644
--- a/tests/com/gitblit/tests/IssuesTest.java
+++ b/tests/com/gitblit/tests/IssuesTest.java
@@ -32,8 +32,10 @@
 import com.gitblit.models.IssueModel.Field;
 import com.gitblit.models.IssueModel.Priority;
 import com.gitblit.models.IssueModel.Status;
+import com.gitblit.models.SearchResult;
 import com.gitblit.utils.IssueUtils;
 import com.gitblit.utils.IssueUtils.IssueFilter;
+import com.gitblit.utils.LuceneUtils;
 
 /**
  * Tests the mechanics of distributed issue management on the gb-issues branch.
@@ -136,6 +138,40 @@
 	}
 
 	@Test
+	public void testLuceneIndexAndQuery() throws Exception {		
+		Repository repository = GitBlitSuite.getIssuesTestRepository();
+		LuceneUtils.deleteIndex(repository);
+		List<IssueModel> allIssues = IssueUtils.getIssues(repository, null);
+		assertTrue(allIssues.size() > 0);
+		for (IssueModel issue : allIssues) {
+			LuceneUtils.index(repository, issue, false);
+		}
+		List<SearchResult> hits = LuceneUtils.search(repository, "working");
+		assertTrue(hits.size() > 0);
+		
+		// reindex an issue
+		IssueModel issue = allIssues.get(0);
+		Change change = new Change("reindex");
+		change.comment("this is a test of reindexing an issue");
+		IssueUtils.updateIssue(repository, issue.id, change);
+		issue = IssueUtils.getIssue(repository, issue.id);
+		LuceneUtils.index(repository, issue, true);
+		
+		LuceneUtils.close();
+		repository.close();
+	}
+	
+	@Test
+	public void testLuceneQuery() throws Exception {
+		Repository repository = GitBlitSuite.getIssuesTestRepository();
+		List<SearchResult> hits = LuceneUtils.search(repository, "working");
+		LuceneUtils.close();
+		repository.close();
+		assertTrue(hits.size() > 0);
+	}
+
+
+	@Test
 	public void testDelete() throws Exception {
 		Repository repository = GitBlitSuite.getIssuesTestRepository();
 		List<IssueModel> allIssues = IssueUtils.getIssues(repository, null);

--
Gitblit v1.9.1