mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 23:15:43 +01:00
Implement first steps for actual merge
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user