From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 25 Feb 2013 08:40:30 -0500
Subject: [PATCH] Merge pull request #75 from thefake/master

---
 tests/com/gitblit/tests/LuceneExecutorTest.java |   49 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/tests/com/gitblit/tests/LuceneExecutorTest.java b/tests/com/gitblit/tests/LuceneExecutorTest.java
index 7a171db..6b45b9f 100644
--- a/tests/com/gitblit/tests/LuceneExecutorTest.java
+++ b/tests/com/gitblit/tests/LuceneExecutorTest.java
@@ -16,9 +16,13 @@
 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.Test;
@@ -27,8 +31,9 @@
 import com.gitblit.models.RefModel;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.SearchResult;
+import com.gitblit.tests.mock.MemorySettings;
+import com.gitblit.utils.FileUtils;
 import com.gitblit.utils.JGitUtils;
-import com.gitblit.utils.StringUtils;
 
 /**
  * Tests Lucene indexing and querying.
@@ -39,13 +44,14 @@
 public class LuceneExecutorTest {
 
 	private LuceneExecutor newLuceneExecutor() {
-		return new LuceneExecutor(null, GitBlitSuite.REPOSITORIES);
+		Map<String, Object> map = new HashMap<String, Object>();
+		MemorySettings settings = new MemorySettings(map);		
+		return new LuceneExecutor(settings, GitBlitSuite.REPOSITORIES);
 	}
 	
 	private RepositoryModel newRepositoryModel(Repository repository) {		
 		RepositoryModel model = new RepositoryModel();
-		model.name = StringUtils.getRelativePath(GitBlitSuite.REPOSITORIES.getAbsolutePath(),
-				repository.getDirectory().getAbsolutePath());
+		model.name = FileUtils.getRelativePath(GitBlitSuite.REPOSITORIES, repository.getDirectory());
 		model.hasCommits = JGitUtils.hasCommits(repository);
 		
 		// index all local branches
@@ -66,9 +72,9 @@
 		lucene.reindex(model, repository);
 		repository.close();
 		
-		SearchResult result = lucene.search("type:blob AND path:bit.bit", 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, model.name).get(0);		
+		result = lucene.search("type:blob AND path:clipper.prg", 1, 1, model.name).get(0);		
 		assertEquals("tinogomes", result.author);		
 
 		// reindex theoretical physics
@@ -95,18 +101,18 @@
 		RepositoryModel model = newRepositoryModel(repository);
 		repository.close();
 		
-		List<SearchResult> results = lucene.search("ada", 10, model.name);
+		List<SearchResult> results = lucene.search("ada", 1, 10, model.name);
 		assertEquals(2, results.size());
 		for (SearchResult res : results) {
 			assertEquals("refs/heads/master", res.branch);
 		}
 
 		// author test
-		results = lucene.search("author: tinogomes AND type:commit", 10, model.name);
+		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\"", 10, model.name);
+		results = lucene.search("type: blob AND \"import std.stdio\"", 1, 10, model.name);
 		assertEquals(1, results.size());
 		assertEquals("d.D", results.get(0).path);
 		
@@ -115,20 +121,20 @@
 		model = newRepositoryModel(repository);
 		repository.close();
 		
-		results = lucene.search("\"add the .nojekyll file\"", 10, model.name);
+		results = lucene.search("\"add the .nojekyll file\"", 1, 10, model.name);
 		assertEquals(1, results.size());
 		assertEquals("Ondrej Certik", results.get(0).author);
 		assertEquals("2648c0c98f2101180715b4d432fc58d0e21a51d7", results.get(0).commitId);
 		assertEquals("refs/heads/gh-pages", results.get(0).branch);
 		
-		results = lucene.search("type:blob AND \"src/intro.rst\"", 10, model.name);
+		results = lucene.search("type:blob AND \"src/intro.rst\"", 1, 10, model.name);
 		assertEquals(4, results.size());
 		
 		// hash id tests
-		results = lucene.search("commit:57c4f26f157ece24b02f4f10f5f68db1d2ce7ff5", 10, model.name);
+		results = lucene.search("commit:57c4f26f157ece24b02f4f10f5f68db1d2ce7ff5", 1, 10, model.name);
 		assertEquals(1, results.size());
 
-		results = lucene.search("commit:57c4f26f157*", 10, model.name);
+		results = lucene.search("commit:57c4f26f157*", 1, 10, model.name);
 		assertEquals(1, results.size());		
 		
 		// annotated tag test
@@ -136,7 +142,7 @@
 		model = newRepositoryModel(repository);
 		repository.close();
 		
-		results = lucene.search("I663208919f297836a9c16bf458e4a43ffaca4c12", 10, model.name);
+		results = lucene.search("I663208919f297836a9c16bf458e4a43ffaca4c12", 1, 10, model.name);
 		assertEquals(1, results.size());
 		assertEquals("[v1.3.0.201202151440-r]", results.get(0).tags.toString());		
 		
@@ -155,8 +161,21 @@
 		list.add(newRepositoryModel(repository).name);
 		repository.close();
 
-		List<SearchResult> results = lucene.search("test", 10, list);
+		List<SearchResult> results = lucene.search("test", 1, 10, list);
 		lucene.close();
 		assertEquals(10, results.size());
 	}
+	
+	@Test
+	public void testDeleteBlobFromIndex() throws Exception {
+		// start with a fresh reindex of entire repository
+		LuceneExecutor lucene = newLuceneExecutor();
+		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"));
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.1