From f76fee63ed9cb3a30d3c0c092d860b1cb93a481b Mon Sep 17 00:00:00 2001
From: Gerard Smyth <gerard.smyth@gmail.com>
Date: Thu, 08 May 2014 13:09:30 -0400
Subject: [PATCH] Updated the SyndicationServlet to provide an additional option to return details of the tags in the repository instead of the commits. This uses a new 'ot' request parameter to indicate the object type of the content to return, which can be ither TAG or COMMIT. If this is not provided, then COMMIT is assumed to maintain backwards compatability. If tags are returned, then the paging parameters, 'l' and 'pg' are still supported, but searching options are currently ignored.

---
 src/test/java/com/gitblit/tests/LuceneExecutorTest.java |   79 ++++++++++++++++++++-------------------
 1 files changed, 40 insertions(+), 39 deletions(-)

diff --git a/src/test/java/com/gitblit/tests/LuceneExecutorTest.java b/src/test/java/com/gitblit/tests/LuceneExecutorTest.java
index 0b67f5d..319c09c 100644
--- a/src/test/java/com/gitblit/tests/LuceneExecutorTest.java
+++ b/src/test/java/com/gitblit/tests/LuceneExecutorTest.java
@@ -15,49 +15,50 @@
  */
 package com.gitblit.tests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.eclipse.jgit.lib.Repository;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.gitblit.LuceneExecutor;
+import com.gitblit.Keys;
+import com.gitblit.manager.RepositoryManager;
+import com.gitblit.manager.RuntimeManager;
+import com.gitblit.manager.UserManager;
 import com.gitblit.models.RefModel;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.SearchResult;
+import com.gitblit.service.LuceneService;
 import com.gitblit.tests.mock.MemorySettings;
 import com.gitblit.utils.FileUtils;
 import com.gitblit.utils.JGitUtils;
 
 /**
  * Tests Lucene indexing and querying.
- * 
+ *
  * @author James Moger
- * 
+ *
  */
-public class LuceneExecutorTest {
+public class LuceneExecutorTest extends GitblitUnitTest {
 
-	LuceneExecutor lucene;
-	
-	private LuceneExecutor newLuceneExecutor() {
-		Map<String, Object> map = new HashMap<String, Object>();
-		MemorySettings settings = new MemorySettings(map);		
-		return new LuceneExecutor(settings, GitBlitSuite.REPOSITORIES);
+	LuceneService lucene;
+
+	private LuceneService newLuceneExecutor() {
+		MemorySettings settings = new MemorySettings();
+		settings.put(Keys.git.repositoriesFolder, GitBlitSuite.REPOSITORIES);
+		RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start();
+		UserManager users = new UserManager(runtime).start();
+		RepositoryManager repos = new RepositoryManager(runtime, users);
+		return new LuceneService(settings, repos);
 	}
-	
-	private RepositoryModel newRepositoryModel(Repository repository) {		
+
+	private RepositoryModel newRepositoryModel(Repository repository) {
 		RepositoryModel model = new RepositoryModel();
 		model.name = FileUtils.getRelativePath(GitBlitSuite.REPOSITORIES, repository.getDirectory());
 		model.hasCommits = JGitUtils.hasCommits(repository);
-		
+
 		// index all local branches
 		model.indexedBranches = new ArrayList<String>();
 		for (RefModel ref : JGitUtils.getLocalBranches(repository, true, -1)) {
@@ -65,29 +66,29 @@
 		}
 		return model;
 	}
-	
+
 	@Before
 	public void setup() {
 		lucene = newLuceneExecutor();
 	}
-	
+
 	@After
 	public void tearDown() {
 		lucene.close();
 	}
-	
+
 	@Test
-	public void testIndex() throws Exception {
+	public void testIndex() {
 		// reindex helloworld
 		Repository repository = GitBlitSuite.getHelloworldRepository();
 		RepositoryModel model = newRepositoryModel(repository);
 		lucene.reindex(model, repository);
 		repository.close();
-		
-		SearchResult result = lucene.search("type:blob AND path:bit.bit", 1, 1, model.name).get(0);		
+
+		SearchResult result = lucene.search("type:blob AND path:bit.bit", 1, 1, model.name).get(0);
 		assertEquals("Mike Donaghy", result.author);
-		result = lucene.search("type:blob AND path:clipper.prg", 1, 1, model.name).get(0);		
-		assertEquals("tinogomes", result.author);		
+		result = lucene.search("type:blob AND path:clipper.prg", 1, 1, model.name).get(0);
+		assertEquals("tinogomes", result.author);
 
 		// reindex JGit
 		repository = GitBlitSuite.getJGitRepository();
@@ -99,10 +100,10 @@
 	@Test
 	public void testQuery() throws Exception {
 		// 2 occurrences on the master branch
-		Repository repository = GitBlitSuite.getHelloworldRepository();				
+		Repository repository = GitBlitSuite.getHelloworldRepository();
 		RepositoryModel model = newRepositoryModel(repository);
 		repository.close();
-		
+
 		List<SearchResult> results = lucene.search("ada", 1, 10, model.name);
 		assertEquals(2, results.size());
 		for (SearchResult res : results) {
@@ -112,37 +113,37 @@
 		// author test
 		results = lucene.search("author: tinogomes AND type:commit", 1, 10, model.name);
 		assertEquals(2, results.size());
-		
+
 		// blob test
 		results = lucene.search("type: blob AND \"import std.stdio\"", 1, 10, model.name);
 		assertEquals(1, results.size());
 		assertEquals("d.D", results.get(0).path);
-		
+
 		// commit test
 		repository = GitBlitSuite.getJGitRepository();
 		model = newRepositoryModel(repository);
 		repository.close();
-		
+
 		results = lucene.search("\"initial jgit contribution to eclipse.org\"", 1, 10, model.name);
 		assertEquals(1, results.size());
 		assertEquals("Git Development Community", results.get(0).author);
 		assertEquals("1a6964c8274c50f0253db75f010d78ef0e739343", results.get(0).commitId);
 		assertEquals("refs/heads/master", results.get(0).branch);
-		
+
 		// hash id tests
 		results = lucene.search("type:commit AND commit:1a6964c8274c50f0253db75f010d78ef0e739343", 1, 10, model.name);
 		assertEquals(1, results.size());
 
 		results = lucene.search("type:commit AND commit:1a6964c8274*", 1, 10, model.name);
 		assertEquals("Shawn O. Pearce", results.get(0).committer);
-		assertEquals(1, results.size());		
-		
+		assertEquals(1, results.size());
+
 		// annotated tag test
 		results = lucene.search("I663208919f297836a9c16bf458e4a43ffaca4c12", 1, 10, model.name);
 		assertEquals(1, results.size());
-		assertEquals("[v1.3.0.201202151440-r]", results.get(0).tags.toString());		
+		assertEquals("[v1.3.0.201202151440-r]", results.get(0).tags.toString());
 	}
-	
+
 	@Test
 	public void testMultiSearch() throws Exception {
 		List<String> list = new ArrayList<String>();
@@ -157,14 +158,14 @@
 		List<SearchResult> results = lucene.search("test", 1, 10, list);
 		assertEquals(10, results.size());
 	}
-	
+
 	@Test
 	public void testDeleteBlobFromIndex() throws Exception {
 		// start with a fresh reindex of entire repository
 		Repository repository = GitBlitSuite.getHelloworldRepository();
 		RepositoryModel model = newRepositoryModel(repository);
 		lucene.reindex(model, repository);
-		
+
 		// now delete a blob
 		assertTrue(lucene.deleteBlob(model.name, "refs/heads/master", "java.java"));
 		assertFalse(lucene.deleteBlob(model.name, "refs/heads/master", "java.java"));

--
Gitblit v1.9.1