Implement first steps for actual merge

This commit is contained in:
René Pfeuffer
2018-11-07 11:52:49 +01:00
parent 04c5d6f84a
commit e377ce5988
3 changed files with 81 additions and 12 deletions

View File

@@ -3,7 +3,22 @@ package sonia.scm.repository.spi;
import org.junit.Assert;
import org.junit.Test;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
public class GitMergeCommandTest extends AbstractGitCommandTestBase {
@Test
public void shouldDetectMergeableBranches() {
GitMergeCommand command = createCommand();
MergeCommandRequest request = new MergeCommandRequest();
request.setBranchToMerge("mergeable");
request.setTargetBranch("master");
boolean mergeable = command.dryRun(request).isMergeable();
assertThat(mergeable).isTrue();
}
@Test
public void shouldDetectNotMergeableBranches() {
GitMergeCommand command = createCommand();
@@ -13,10 +28,34 @@ public class GitMergeCommandTest extends AbstractGitCommandTestBase {
boolean mergeable = command.dryRun(request).isMergeable();
Assert.assertFalse(mergeable);
assertThat(mergeable).isFalse();
}
@Test
public void shouldMergeMergeableBranches() {
GitMergeCommand command = createCommand();
MergeCommandRequest request = new MergeCommandRequest();
request.setTargetBranch("master");
request.setBranchToMerge("mergeable");
boolean mergeable = command.merge(request).isSuccess();
assertThat(mergeable).isTrue();
}
@Test
public void shouldNotMergeConflictingBranches() {
GitMergeCommand command = createCommand();
MergeCommandRequest request = new MergeCommandRequest();
request.setBranchToMerge("test-branch");
request.setTargetBranch("master");
boolean mergeable = command.merge(request).isSuccess();
assertThat(mergeable).isFalse();
}
private GitMergeCommand createCommand() {
return new GitMergeCommand(createContext(), repository, null);
return new GitMergeCommand(createContext(), repository, new SimpleGitWorkdirFactory());
}
}