From a3bde69e9b3f3cc6212b0cd5fd7310b6a3301d8c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 01 Jun 2011 20:47:05 -0400 Subject: [PATCH] Documentation. Enforce ".git" suffix for created repositories. --- tests/com/gitblit/tests/JGitUtilsTest.java | 139 +++++++++++++++++++++++++++++++++++++--------- 1 files changed, 112 insertions(+), 27 deletions(-) diff --git a/tests/com/gitblit/tests/JGitUtilsTest.java b/tests/com/gitblit/tests/JGitUtilsTest.java index 7fcf48d..14d318f 100644 --- a/tests/com/gitblit/tests/JGitUtilsTest.java +++ b/tests/com/gitblit/tests/JGitUtilsTest.java @@ -29,21 +29,23 @@ import org.eclipse.jgit.revwalk.RevObject; import org.eclipse.jgit.revwalk.RevTree; +import com.gitblit.GitBlit; +import com.gitblit.models.Metric; import com.gitblit.models.PathModel.PathChangeModel; import com.gitblit.models.RefModel; import com.gitblit.models.TicketModel; -import com.gitblit.utils.DiffUtils; +import com.gitblit.models.TicketModel.Comment; import com.gitblit.utils.JGitUtils; -import com.gitblit.utils.JGitUtils.DiffOutputType; +import com.gitblit.utils.MetricUtils; public class JGitUtilsTest extends TestCase { - private List<String> getRepositories() { - return JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, true, true); - } - public void testFindRepositories() { - List<String> list = getRepositories(); + List<String> list = JGitUtils.getRepositoryList(null, true, true); + assertTrue(list.size() == 0); + list.addAll(JGitUtils.getRepositoryList(new File("DoesNotExist"), true, true)); + assertTrue(list.size() == 0); + list.addAll(JGitUtils.getRepositoryList(GitBlitSuite.REPOSITORIES, true, true)); assertTrue("No repositories found in " + GitBlitSuite.REPOSITORIES, list.size() > 0); } @@ -53,20 +55,86 @@ assertTrue("Could not find repository!", repository != null); } - public void testLastChangeRepository() throws Exception { + public void testFirstCommit() throws Exception { + assertTrue(JGitUtils.getFirstChange(null, null).equals(new Date(0))); + Repository repository = GitBlitSuite.getHelloworldRepository(); + RevCommit commit = JGitUtils.getFirstCommit(repository, null); + Date firstChange = JGitUtils.getFirstChange(repository, null); + repository.close(); + assertTrue("Could not get first commit!", commit != null); + assertTrue("Incorrect first commit!", + commit.getName().equals("f554664a346629dc2b839f7292d06bad2db4aece")); + assertTrue(firstChange.equals(new Date(commit.getCommitTime() * 1000L))); + } + + public void testLastCommit() throws Exception { + assertTrue(JGitUtils.getLastChange(null).equals(new Date(0))); + + Repository repository = GitBlitSuite.getHelloworldRepository(); + assertTrue(JGitUtils.getCommit(repository, null) != null); Date date = JGitUtils.getLastChange(repository); repository.close(); assertTrue("Could not get last repository change date!", date != null); } - public void testFirstCommit() throws Exception { - Repository repository = GitBlitSuite.getHelloworldRepository(); - RevCommit commit = JGitUtils.getFirstCommit(repository, null); + + + public void testCreateRepository() throws Exception { + String[] repositories = { "NewTestRepository.git", "NewTestRepository" }; + for (String repositoryName : repositories) { + boolean isBare = repositoryName.endsWith(".git"); + Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, + repositoryName, isBare); + File folder; + if (isBare) { + folder = new File(GitBlitSuite.REPOSITORIES, repositoryName); + } else { + folder = new File(GitBlitSuite.REPOSITORIES, repositoryName + "/.git"); + } + assertTrue(repository != null); + assertFalse(JGitUtils.hasCommits(repository)); + assertTrue(JGitUtils.getFirstCommit(repository, null) == null); + assertTrue(JGitUtils.getFirstChange(repository, null).getTime() == folder + .lastModified()); + assertTrue(JGitUtils.getLastChange(repository).getTime() == folder + .lastModified()); + assertTrue(JGitUtils.getCommit(repository, null) == null); + repository.close(); + assertTrue(GitBlit.self().deleteRepository(repositoryName)); + } + } + + public void testRefs() throws Exception { + Repository repository = GitBlitSuite.getTicgitRepository(); + for (RefModel model : JGitUtils.getLocalBranches(repository, -1)) { + assertTrue(model.getName().startsWith(Constants.R_HEADS)); + assertTrue(model.equals(model)); + assertFalse(model.equals("")); + assertTrue(model.hashCode() == model.getCommitId().hashCode() + + model.getName().hashCode()); + assertTrue(model.getShortLog().equals(model.commit.getShortMessage())); + } + for (RefModel model : JGitUtils.getRemoteBranches(repository, -1)) { + assertTrue(model.getName().startsWith(Constants.R_REMOTES)); + assertTrue(model.equals(model)); + assertFalse(model.equals("")); + assertTrue(model.hashCode() == model.getCommitId().hashCode() + + model.getName().hashCode()); + assertTrue(model.getShortLog().equals(model.commit.getShortMessage())); + } + for (RefModel model : JGitUtils.getTags(repository, -1)) { + if (model.getObjectId().getName().equals("283035e4848054ff1803cb0e690270787dc92399")) { + assertTrue("Not an annotated tag!", model.isAnnotatedTag()); + } + assertTrue(model.getName().startsWith(Constants.R_TAGS)); + assertTrue(model.equals(model)); + assertFalse(model.equals("")); + assertTrue(model.hashCode() == model.getCommitId().hashCode() + + model.getName().hashCode()); + assertTrue(model.getShortLog().equals(model.commit.getShortMessage())); + } repository.close(); - assertTrue("Could not get first commit!", commit != null); - assertTrue("Incorrect first commit!", - commit.getName().equals("f554664a346629dc2b839f7292d06bad2db4aece")); } public void testRetrieveRevObject() throws Exception { @@ -95,17 +163,12 @@ List<PathChangeModel> paths = JGitUtils.getFilesInCommit(repository, commit); repository.close(); assertTrue("No changed paths found!", paths.size() == 1); - } - - public void testCommitDiff() throws Exception { - Repository repository = GitBlitSuite.getHelloworldRepository(); - RevCommit commit = JGitUtils.getCommit(repository, - "1d0c2933a4ae69c362f76797d42d6bd182d05176"); - String diff = DiffUtils.getCommitDiff(repository, commit, DiffOutputType.PLAIN); - repository.close(); - assertTrue("Failed to generate diff!", diff != null && diff.length() > 0); - String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\""; - assertTrue("Diff content mismatch!", diff.indexOf(expected) > -1); + for (PathChangeModel path : paths) { + assertTrue("PathChangeModel hashcode incorrect!", + path.hashCode() == (path.commitId.hashCode() + path.path.hashCode())); + assertTrue("PathChangeModel equals itself failed!", path.equals(path)); + assertFalse("PathChangeModel equals string failed!", path.equals("")); + } } public void testZip() throws Exception { @@ -120,12 +183,34 @@ repository.close(); } + public void testMetrics() throws Exception { + Repository repository = GitBlitSuite.getHelloworldRepository(); + List<Metric> metrics = MetricUtils.getDateMetrics(repository, true); + repository.close(); + assertTrue("No metrics found!", metrics.size() > 0); + } + public void testTicGit() throws Exception { Repository repository = GitBlitSuite.getTicgitRepository(); RefModel branch = JGitUtils.getTicketsBranch(repository); assertTrue("Ticgit branch does not exist!", branch != null); - List<TicketModel> tickets = JGitUtils.getTickets(repository); + List<TicketModel> ticketsA = JGitUtils.getTickets(repository); + List<TicketModel> ticketsB = JGitUtils.getTickets(repository); repository.close(); - assertTrue("No tickets found!", tickets.size() > 0); + assertTrue("No tickets found!", ticketsA.size() > 0); + for (int i = 0; i < ticketsA.size(); i++) { + TicketModel ticketA = ticketsA.get(i); + TicketModel ticketB = ticketsB.get(i); + assertTrue("Tickets are not equal!", ticketA.equals(ticketB)); + assertFalse(ticketA.equals("")); + assertTrue(ticketA.hashCode() == ticketA.id.hashCode()); + for (int j = 0; j < ticketA.comments.size(); j++) { + Comment commentA = ticketA.comments.get(j); + Comment commentB = ticketB.comments.get(j); + assertTrue("Comments are not equal!", commentA.equals(commentB)); + assertFalse(commentA.equals("")); + assertTrue(commentA.hashCode() == commentA.text.hashCode()); + } + } } } \ No newline at end of file -- Gitblit v1.9.1