package com.beijunyi.parallelgit.io; import java.io.IOException; import java.util.SortedMap; import java.util.TreeMap; import com.beijunyi.parallelgit.AbstractParallelGitTest; import com.beijunyi.parallelgit.utils.io.GitFileEntry; import com.beijunyi.parallelgit.utils.io.TreeSnapshot; import org.eclipse.jgit.lib.ObjectId; import org.junit.Before; import org.junit.Test; import static com.beijunyi.parallelgit.utils.io.GitFileEntry.newEntry; import static org.eclipse.jgit.lib.FileMode.REGULAR_FILE; import static org.junit.Assert.assertEquals; public class TreeSnapshotSaveTest extends AbstractParallelGitTest { @Before public void setUp() throws IOException { initRepository(); } @Test public void createSnapshotAndSave_shouldFindChildrenEntriesFromTreeId() throws IOException { SortedMap<String, GitFileEntry> children = new TreeMap<>(); GitFileEntry entry1 = newEntry(someObjectId(), REGULAR_FILE); children.put("file1.txt", entry1); GitFileEntry entry2 = newEntry(someObjectId(), REGULAR_FILE); children.put("file2.txt", entry2); ObjectId treeId = TreeSnapshot.capture(children).save(repo); assertEquals(entry1, newEntry("file1.txt", treeId, repo)); assertEquals(entry2, newEntry("file2.txt", treeId, repo)); } @Test public void loadSnapshotAndSave_theResultTreeIdShouldBeTheSame() throws IOException { writeSomethingToCache(); ObjectId loaded = commit().getTree(); ObjectId saved = TreeSnapshot.load(loaded, repo).save(repo); assertEquals(loaded, saved); } }