package com.beijunyi.parallelgit.utils;
import java.io.IOException;
import com.beijunyi.parallelgit.AbstractParallelGitTest;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.TreeFormatter;
import org.junit.Test;
import static org.eclipse.jgit.lib.FileMode.*;
import static org.junit.Assert.assertEquals;
public class TreeUtilsInsertTreeTest extends AbstractParallelGitTest {
@Test
public void insertTreeIntoRepository_shouldBeAbleToRetrieveChildrenIdsByTreeIdAndFilename() throws IOException {
initRepository();
TreeFormatter tf = new TreeFormatter();
ObjectId nodeObject1 = someObjectId();
tf.append("file1.txt", REGULAR_FILE, nodeObject1);
ObjectId nodeObject2 = someObjectId();
tf.append("file2.txt", REGULAR_FILE, nodeObject2);
ObjectId tree = TreeUtils.insertTree(tf, repo);
assertEquals(nodeObject1, TreeUtils.getObjectId("file1.txt", tree, repo));
assertEquals(nodeObject2, TreeUtils.getObjectId("file2.txt", tree, repo));
}
@Test
public void insertTreeIntoRepository_shouldBeAbleToRetrieveChildrenFileModesByTreeIdAndFilename() throws IOException {
initRepository();
TreeFormatter tf = new TreeFormatter();
tf.append("file.txt", REGULAR_FILE, someObjectId());
tf.append("dir", TREE, someObjectId());
ObjectId tree = TreeUtils.insertTree(tf, repo);
assertEquals(REGULAR_FILE, TreeUtils.getFileMode("file.txt", tree, repo));
assertEquals(TREE, TreeUtils.getFileMode("dir", tree, repo));
}
}