package com.beijunyi.parallelgit.filesystem.commands; import java.io.IOException; import com.beijunyi.parallelgit.filesystem.AbstractGitFileSystemTest; import com.beijunyi.parallelgit.filesystem.ParallelGitMergeTest; import com.beijunyi.parallelgit.filesystem.commands.GfsMerge.Result; import org.eclipse.jgit.lib.AnyObjectId; import org.junit.Before; import org.junit.Test; import static com.beijunyi.parallelgit.filesystem.Gfs.*; import static com.beijunyi.parallelgit.filesystem.commands.GfsMerge.Status.MERGED; import static org.junit.Assert.assertEquals; public class GfsMergeAutoMergeTest extends AbstractGitFileSystemTest implements ParallelGitMergeTest { @Before public void setUp() throws IOException { initRepository(); writeToCache("/test_file.txt", "a\nb\nc\nd\ne"); AnyObjectId base = commit(); writeToCache("/test_file.txt", "a\nB\nc\nd\ne"); commitToBranch(OURS, base); writeToCache("/test_file.txt", "a\nb\nc\nD\nd\ne"); commitToBranch(THEIRS, base); gfs = newFileSystem(OURS, repo); } @Test public void whenSourceBranchHasAutoMergeableFile_statusShouldBeMerged() throws IOException { Result result = merge(gfs).source(THEIRS).execute(); assertEquals(MERGED, result.getStatus()); } @Test public void whenSourceBranchHasAutoMergeableFile_theFileShouldHaveMergedContentAfterTheOperation() throws IOException { merge(gfs).source(THEIRS).execute(); assertEquals("a\nB\nc\nD\nd\ne", readAsString(gfs.getPath("/test_file.txt"))); } }