diff options
author | James Moger <james.moger@gitblit.com> | 2012-01-13 07:58:12 -0500 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2012-01-13 07:58:12 -0500 |
commit | 0f43a54527845b5873f35dc80300d578bfe84bb0 (patch) | |
tree | 084fef70e383d330deb3ae64158c3401bbe6397a /tests | |
parent | 82b5f3581e5c3d5667e3c8da6aa024cb0eb3a47e (diff) | |
download | gitblit-0f43a54527845b5873f35dc80300d578bfe84bb0.tar.gz gitblit-0f43a54527845b5873f35dc80300d578bfe84bb0.zip |
Branch for implementing distributed gb-issues
Diffstat (limited to 'tests')
-rw-r--r-- | tests/com/gitblit/tests/GitBlitSuite.java | 6 | ||||
-rw-r--r-- | tests/com/gitblit/tests/IssuesTest.java | 115 |
2 files changed, 121 insertions, 0 deletions
diff --git a/tests/com/gitblit/tests/GitBlitSuite.java b/tests/com/gitblit/tests/GitBlitSuite.java index 71947e14..747ce1f3 100644 --- a/tests/com/gitblit/tests/GitBlitSuite.java +++ b/tests/com/gitblit/tests/GitBlitSuite.java @@ -90,6 +90,10 @@ public class GitBlitSuite { return new FileRepository(new File(REPOSITORIES, "test/theoretical-physics.git"));
}
+ public static Repository getIssuesTestRepository() throws Exception {
+ return new FileRepository(new File(REPOSITORIES, "gb-issues.git"));
+ }
+
public static boolean startGitblit() throws Exception {
if (started.get()) {
// already started
@@ -134,6 +138,8 @@ public class GitBlitSuite { cloneOrFetch("test/ambition.git", "https://github.com/defunkt/ambition.git");
cloneOrFetch("test/theoretical-physics.git", "https://github.com/certik/theoretical-physics.git");
+ JGitUtils.createRepository(REPOSITORIES, "gb-issues.git").close();
+
enableTickets("ticgit.git");
enableDocs("ticgit.git");
showRemoteBranches("ticgit.git");
diff --git a/tests/com/gitblit/tests/IssuesTest.java b/tests/com/gitblit/tests/IssuesTest.java new file mode 100644 index 00000000..1522ec69 --- /dev/null +++ b/tests/com/gitblit/tests/IssuesTest.java @@ -0,0 +1,115 @@ +/*
+ * Copyright 2012 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.gitblit.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.bouncycastle.util.Arrays;
+import org.eclipse.jgit.lib.Repository;
+import org.junit.Test;
+
+import com.gitblit.models.IssueModel;
+import com.gitblit.models.IssueModel.Attachment;
+import com.gitblit.models.IssueModel.Change;
+import com.gitblit.models.IssueModel.Field;
+import com.gitblit.models.IssueModel.Priority;
+import com.gitblit.utils.IssueUtils;
+import com.gitblit.utils.IssueUtils.IssueFilter;
+
+public class IssuesTest {
+
+ @Test
+ public void testInsertion() throws Exception {
+ Repository repository = GitBlitSuite.getIssuesTestRepository();
+ // create and insert the issue
+ Change c1 = newChange("Test issue " + Long.toHexString(System.currentTimeMillis()));
+ IssueModel issue = IssueUtils.createIssue(repository, c1);
+ assertNotNull(issue.id);
+
+ // retrieve issue and compare
+ IssueModel constructed = IssueUtils.getIssue(repository, issue.id);
+ compare(issue, constructed);
+
+ // add a note and update
+ Change c2 = new Change();
+ c2.author = "dave";
+ c2.comment("yeah, this is working");
+ assertTrue(IssueUtils.updateIssue(repository, issue.id, c2));
+
+ // retrieve issue again
+ constructed = IssueUtils.getIssue(repository, issue.id);
+
+ assertEquals(2, constructed.changes.size());
+
+ Attachment a = IssueUtils.getIssueAttachment(repository, issue.id, "test.txt");
+ repository.close();
+
+ assertEquals(10, a.content.length);
+ assertTrue(Arrays.areEqual(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, a.content));
+ }
+
+ @Test
+ public void testQuery() throws Exception {
+ Repository repository = GitBlitSuite.getIssuesTestRepository();
+ List<IssueModel> list = IssueUtils.getIssues(repository, null);
+ List<IssueModel> list2 = IssueUtils.getIssues(repository, new IssueFilter() {
+ boolean hasFirst = false;
+ @Override
+ public boolean accept(IssueModel issue) {
+ if (!hasFirst) {
+ hasFirst = true;
+ return true;
+ }
+ return false;
+ }
+ });
+ repository.close();
+ assertTrue(list.size() > 0);
+ assertEquals(1, list2.size());
+ }
+
+ private Change newChange(String summary) {
+ Change change = new Change();
+ change.setField(Field.Reporter, "james");
+ change.setField(Field.Owner, "dave");
+ change.setField(Field.Summary, summary);
+ change.setField(Field.Description, "this is my description");
+ change.setField(Field.Priority, Priority.High);
+ change.setField(Field.Labels, "helpdesk");
+ change.comment("my comment");
+
+ Attachment attachment = new Attachment("test.txt");
+ attachment.content = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+ change.addAttachment(attachment);
+
+ return change;
+ }
+
+ private void compare(IssueModel issue, IssueModel constructed) {
+ assertEquals(issue.id, constructed.id);
+ assertEquals(issue.reporter, constructed.reporter);
+ assertEquals(issue.owner, constructed.owner);
+ assertEquals(issue.created.getTime() / 1000, constructed.created.getTime() / 1000);
+ assertEquals(issue.summary, constructed.summary);
+ assertEquals(issue.description, constructed.description);
+
+ assertTrue(issue.hasLabel("helpdesk"));
+ }
+}
\ No newline at end of file |