package com.beijunyi.parallelgit.filesystem; import java.io.IOException; import com.beijunyi.parallelgit.utils.TreeUtils; import org.eclipse.jgit.lib.AnyObjectId; import org.eclipse.jgit.treewalk.TreeWalk; import org.junit.Test; import static java.nio.file.Files.write; import static org.junit.Assert.*; public class GitFileSystemFlushTest extends PreSetupGitFileSystemTest { @Test public void flushWhenNoChangeIsMade_theResultShouldEqualToThePreviousTree() throws IOException { AnyObjectId previousTree = gfs.getStatusProvider().commit().getTree(); assertEquals(previousTree, gfs.flush()); } @Test public void flushAfterChangeIsMade_theResultShouldNotEqualToThePreviousTree() throws IOException { AnyObjectId previousTree = gfs.getStatusProvider().commit().getTree(); write(gfs.getPath("/some_file.txt"), someBytes()); assertNotEquals(previousTree, gfs.flush()); } @Test public void flushAfterChangeIsMade_theResultShouldReflectTheChanges() throws IOException { byte[] expectedContent = someBytes(); write(gfs.getPath("/some_file.txt"), expectedContent); AnyObjectId result = gfs.flush(); try(TreeWalk tw = TreeUtils.forPath("/some_file.txt", result, repo)) { assert tw != null; assertArrayEquals(expectedContent, repo.open(tw.getObjectId(0)).getBytes()); } } }