code: 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));
    }
  
  }
  