code: package usecases;
  
  import java.io.IOException;
  import javax.annotation.Nonnull;
  
  import com.beijunyi.parallelgit.filesystem.Gfs;
  import com.beijunyi.parallelgit.filesystem.PreSetupGitFileSystemTest;
  import com.beijunyi.parallelgit.utils.GitFileUtils;
  import org.eclipse.jgit.revwalk.RevCommit;
  import org.junit.Test;
  
  import static org.junit.Assert.assertTrue;
  
  public class CommitMultipleFilesTest extends PreSetupGitFileSystemTest {
  
    @Test
    public void commitMultipleFiles_allFilesShouldExistInTheResultCommit() throws IOException {
      String[] files = {"/file1.txt", "/file2.txt", "/file3.txt"};
      RevCommit commit = writeAndCommit(files);
      for(String file : files)
        assertTrue(GitFileUtils.exists(file, commit, repo));
    }
  
    @Test
    public void commitFilesInDifferentDepthDirectories_allFilesShouldExistInTheResultCommit() throws IOException {
      String[] files = {"/dir1/file11.txt", "/dir2/dir21/file211.txt", "/dir2/file22.txt", "/dir2/file23.txt"};
      RevCommit commit = writeAndCommit(files);
      for(String file : files)
        assertTrue(GitFileUtils.exists(file, commit, repo));
    }
  
    @Nonnull
    private RevCommit writeAndCommit(String[] files) throws IOException {
      for(String file : files)
        writeToGfs(file);
      return Gfs.commit(gfs).execute().getCommit();
    }
  
  }
  