public @Test void prepareAndManuallyResolveAllConflicts() {
createConflicts(TestData.point1, TestData.line1, TestData.poly1);
PRStatus result = prepare();
assertEquals(3, result.getNumConflicts());
final UUID transactionId = request.getTransactionId();
origin.resumeTransaction(transactionId);
assertEquals(request.getTargetBranch(), origin.getRef("HEAD").peel().localName());
SimpleFeature c1 = TestData.clone(TestData.point1); c1.setAttribute("sp", "manually set");
SimpleFeature c2 = TestData.clone(TestData.line1); c2.setAttribute("sp", "manually set");
SimpleFeature c3 = TestData.clone(TestData.poly1); c3.setAttribute("sp", "manually set");
Context context = clone.checkout("issuerBranch").getContext();
try {
PullResult pres = context.command(PullOp.class).addRefSpec("master").call();
fail("Expected MergeConflictsException , got " + pres);
} catch (MergeConflictsException e) {
assertEquals(3, e.getReport().getConflicts());
clone.insert(c1, c2, c3).add().commit("manual conflict fix");
}
result = prepare();
assertTrue(result.getMergeCommit().isPresent());
assertTrue(result.getReport().isPresent());
GeogigTransaction prtx = getTransaction();
Optional<Ref> mergeRef = request.resolveMergeRef(prtx);
assertTrue(mergeRef.isPresent());
assertEquals(result.getMergeCommit().get(), mergeRef.get().getObjectId());
}