Search in sources :

Example 11 with Reference

use of com.gitblit.models.TicketModel.Reference in project gitblit by gitblit.

the class TicketReferenceTest method commitMasterAmendReference.

@Test
public void commitMasterAmendReference() throws Exception {
    TicketModel a = ticketService.createTicket(repo, newTicket("commitMasterAmendReference-A"));
    TicketModel b = ticketService.createTicket(repo, newTicket("commitMasterAmendReference-B"));
    final String branchName = "master";
    git.checkout().setCreateBranch(false).setName(branchName).call();
    String message = String.format("commit before amend for #%d and #%d", a.number, b.number);
    final RevCommit revCommit1 = makeCommit(message);
    final String commit1Sha = revCommit1.name();
    assertPushSuccess(commit1Sha, branchName);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    assertTrue(a.hasReferences());
    assertTrue(b.hasReferences());
    List<Reference> cRefA = a.getReferences();
    assertNotNull(cRefA);
    assertEquals(1, cRefA.size());
    assertNull(cRefA.get(0).ticketId);
    assertEquals(commit1Sha, cRefA.get(0).hash);
    List<Reference> cRefB = b.getReferences();
    assertNotNull(cRefB);
    assertEquals(1, cRefB.size());
    assertNull(cRefB.get(0).ticketId);
    assertEquals(commit1Sha, cRefB.get(0).hash);
    //Confirm that old invalid references removed for both tickets
    //and new reference added for one referenced ticket
    message = String.format("commit after amend for #%d", a.number);
    final String commit2Sha = amendCommit(message);
    assertForcePushSuccess(commit2Sha, branchName);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    assertTrue(a.hasReferences());
    assertFalse(b.hasReferences());
    cRefA = a.getReferences();
    assertNotNull(cRefA);
    assertEquals(1, cRefA.size());
    assertNull(cRefA.get(0).ticketId);
    assertEquals(commit2Sha, cRefA.get(0).hash);
}
Also used : Reference(com.gitblit.models.TicketModel.Reference) TicketModel(com.gitblit.models.TicketModel) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 12 with Reference

use of com.gitblit.models.TicketModel.Reference in project gitblit by gitblit.

the class TicketReferenceTest method commitTicketBranchAmendReference.

@Test
public void commitTicketBranchAmendReference() throws Exception {
    setPatchsetAvailable(false);
    TicketModel a = ticketService.createTicket(repo, newTicket("commitTicketBranchAmendReference-A"));
    TicketModel b = ticketService.createTicket(repo, newTicket("commitTicketBranchAmendReference-B"));
    TicketModel c = ticketService.createTicket(repo, newTicket("commitTicketBranchAmendReference-C"));
    assertFalse(c.hasPatchsets());
    String branchName = String.format("ticket/%d", c.number);
    git.checkout().setCreateBranch(true).setName(branchName).call();
    String message = String.format("commit before amend for #%d and #%d", a.number, b.number);
    final RevCommit revCommit1 = makeCommit(message);
    final String commit1Sha = revCommit1.name();
    assertPushSuccess(commit1Sha, branchName);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    c = ticketService.getTicket(repo, c.number);
    assertTrue(a.hasReferences());
    assertTrue(b.hasReferences());
    assertFalse(c.hasReferences());
    assertFalse(c.hasPatchsets());
    List<Reference> cRefA = a.getReferences();
    assertNotNull(cRefA);
    assertEquals(1, cRefA.size());
    assertNull(cRefA.get(0).ticketId);
    assertEquals(commit1Sha, cRefA.get(0).hash);
    List<Reference> cRefB = b.getReferences();
    assertNotNull(cRefB);
    assertEquals(1, cRefB.size());
    assertNull(cRefB.get(0).ticketId);
    assertEquals(commit1Sha, cRefB.get(0).hash);
    //Confirm that old invalid references removed for both tickets
    //and new reference added for one referenced ticket
    message = String.format("commit after amend for #%d", a.number);
    final String commit2Sha = amendCommit(message);
    assertForcePushSuccess(commit2Sha, branchName);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    c = ticketService.getTicket(repo, c.number);
    assertTrue(a.hasReferences());
    assertFalse(b.hasReferences());
    assertFalse(c.hasReferences());
    assertFalse(c.hasPatchsets());
    cRefA = a.getReferences();
    assertNotNull(cRefA);
    assertEquals(1, cRefA.size());
    assertNull(cRefA.get(0).ticketId);
    assertEquals(commit2Sha, cRefA.get(0).hash);
}
Also used : Reference(com.gitblit.models.TicketModel.Reference) TicketModel(com.gitblit.models.TicketModel) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 13 with Reference

use of com.gitblit.models.TicketModel.Reference in project gitblit by gitblit.

the class TicketReferenceTest method commentSelfAndOtherReference.

@Test
public void commentSelfAndOtherReference() throws Exception {
    TicketModel a = ticketService.createTicket(repo, newTicket("commentSelfAndOtherReference-A"));
    TicketModel b = ticketService.createTicket(repo, newTicket("commentSelfAndOtherReference-B"));
    final Change comment = newComment(String.format("comment for #%d and #%d - self and other reference", a.number, b.number));
    assertNotNull(ticketService.updateTicket(repo, a.number, comment));
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    assertFalse(a.hasReferences());
    assertTrue(b.hasReferences());
    List<Reference> cRefB = b.getReferences();
    assertNotNull(cRefB);
    assertEquals(1, cRefB.size());
    assertEquals(a.number, cRefB.get(0).ticketId.longValue());
    assertEquals(comment.comment.id, cRefB.get(0).hash);
}
Also used : Reference(com.gitblit.models.TicketModel.Reference) TicketModel(com.gitblit.models.TicketModel) Change(com.gitblit.models.TicketModel.Change) Test(org.junit.Test)

Example 14 with Reference

use of com.gitblit.models.TicketModel.Reference in project gitblit by gitblit.

the class TicketReferenceTest method commitPatchsetAmendReference.

@Test
public void commitPatchsetAmendReference() throws Exception {
    setPatchsetAvailable(true);
    TicketModel a = ticketService.createTicket(repo, newTicket("commitPatchsetAmendReference-A"));
    TicketModel b = ticketService.createTicket(repo, newTicket("commitPatchsetAmendReference-B"));
    TicketModel c = ticketService.createTicket(repo, newTicket("commitPatchsetAmendReference-C"));
    assertFalse(c.hasPatchsets());
    String branchName = String.format("ticket/%d", c.number);
    git.checkout().setCreateBranch(true).setName(branchName).call();
    String message = String.format("commit before amend for #%d and #%d", a.number, b.number);
    final RevCommit revCommit1 = makeCommit(message);
    final String commit1Sha = revCommit1.name();
    assertPushSuccess(commit1Sha, branchName);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    c = ticketService.getTicket(repo, c.number);
    assertTrue(a.hasReferences());
    assertTrue(b.hasReferences());
    assertFalse(c.hasReferences());
    assertTrue(c.hasPatchsets());
    assertNotNull(c.getPatchset(1, 1));
    List<Reference> cRefA = a.getReferences();
    assertNotNull(cRefA);
    assertEquals(1, cRefA.size());
    assertNull(cRefA.get(0).ticketId);
    assertEquals(commit1Sha, cRefA.get(0).hash);
    List<Reference> cRefB = b.getReferences();
    assertNotNull(cRefB);
    assertEquals(1, cRefB.size());
    assertNull(cRefB.get(0).ticketId);
    assertEquals(commit1Sha, cRefB.get(0).hash);
    //As a new patchset is created the references will remain until deleted
    message = String.format("commit after amend for #%d", a.number);
    final String commit2Sha = amendCommit(message);
    assertForcePushSuccess(commit2Sha, branchName);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    c = ticketService.getTicket(repo, c.number);
    assertTrue(a.hasReferences());
    assertTrue(b.hasReferences());
    assertFalse(c.hasReferences());
    assertNotNull(c.getPatchset(1, 1));
    assertNotNull(c.getPatchset(2, 1));
    cRefA = a.getReferences();
    assertNotNull(cRefA);
    assertEquals(2, cRefA.size());
    assertNull(cRefA.get(0).ticketId);
    assertNull(cRefA.get(1).ticketId);
    assertEquals(commit1Sha, cRefA.get(0).hash);
    assertEquals(commit2Sha, cRefA.get(1).hash);
    cRefB = b.getReferences();
    assertNotNull(cRefB);
    assertEquals(1, cRefB.size());
    assertNull(cRefB.get(0).ticketId);
    assertEquals(commit1Sha, cRefB.get(0).hash);
    //Delete the original patchset and confirm old references are removed
    ticketService.deletePatchset(c, c.getPatchset(1, 1), user.username);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    c = ticketService.getTicket(repo, c.number);
    assertTrue(a.hasReferences());
    assertFalse(b.hasReferences());
    assertFalse(c.hasReferences());
    assertNull(c.getPatchset(1, 1));
    assertNotNull(c.getPatchset(2, 1));
    cRefA = a.getReferences();
    assertNotNull(cRefA);
    assertEquals(1, cRefA.size());
    assertNull(cRefA.get(0).ticketId);
    assertEquals(commit2Sha, cRefA.get(0).hash);
}
Also used : Reference(com.gitblit.models.TicketModel.Reference) TicketModel(com.gitblit.models.TicketModel) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 15 with Reference

use of com.gitblit.models.TicketModel.Reference in project gitblit by gitblit.

the class TicketReferenceTest method commitTicketBranchMultiReference.

@Test
public void commitTicketBranchMultiReference() throws Exception {
    setPatchsetAvailable(false);
    TicketModel a = ticketService.createTicket(repo, newTicket("commitTicketBranchMultiReference-A"));
    TicketModel b = ticketService.createTicket(repo, newTicket("commitTicketBranchMultiReference-B"));
    TicketModel c = ticketService.createTicket(repo, newTicket("commitTicketBranchMultiReference-C"));
    String branchName = String.format("ticket/%d", a.number);
    git.checkout().setCreateBranch(true).setName(branchName).call();
    final String message = String.format("commit for #%d and #%d- patchset multi reference", b.number, c.number);
    final RevCommit revCommit1 = makeCommit(message);
    final String commit1Sha = revCommit1.name();
    assertPushSuccess(commit1Sha, branchName);
    a = ticketService.getTicket(repo, a.number);
    b = ticketService.getTicket(repo, b.number);
    c = ticketService.getTicket(repo, c.number);
    assertFalse(a.hasReferences());
    assertTrue(b.hasReferences());
    assertTrue(c.hasReferences());
    List<Reference> cRefB = b.getReferences();
    assertNotNull(cRefB);
    assertEquals(1, cRefB.size());
    assertNull(cRefB.get(0).ticketId);
    assertEquals(commit1Sha, cRefB.get(0).hash);
    List<Reference> cRefC = c.getReferences();
    assertNotNull(cRefC);
    assertEquals(1, cRefC.size());
    assertNull(cRefC.get(0).ticketId);
    assertEquals(commit1Sha, cRefC.get(0).hash);
}
Also used : Reference(com.gitblit.models.TicketModel.Reference) TicketModel(com.gitblit.models.TicketModel) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Aggregations

TicketModel (com.gitblit.models.TicketModel)16 Reference (com.gitblit.models.TicketModel.Reference)16 Test (org.junit.Test)16 RevCommit (org.eclipse.jgit.revwalk.RevCommit)13 Change (com.gitblit.models.TicketModel.Change)3 MergeResult (org.eclipse.jgit.api.MergeResult)1 PushResult (org.eclipse.jgit.transport.PushResult)1 RemoteRefUpdate (org.eclipse.jgit.transport.RemoteRefUpdate)1