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);
}
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);
}
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);
}
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);
}
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);
}
Aggregations