code: package usecases;
  
  import java.io.IOException;
  import java.nio.file.Files;
  import java.nio.file.Path;
  
  import com.beijunyi.parallelgit.filesystem.AbstractGitFileSystemTest;
  import com.beijunyi.parallelgit.filesystem.Gfs;
  import com.beijunyi.parallelgit.utils.GitFileUtils;
  import org.eclipse.jgit.revwalk.RevCommit;
  import org.junit.Before;
  import org.junit.Test;
  
  import static org.junit.Assert.*;
  
  public class CommitEmptyDirectoryTest extends AbstractGitFileSystemTest {
  
    @Before
    public void setupFileSystem() throws IOException {
      initGitFileSystem();
    }
  
    @Test
    public void commitEmptyDirectory_theEmptyDirectoryShouldNotExistInTheResultCommit() throws IOException {
      writeSomethingToGfs();
      Path dir = gfs.getPath("/empty_dir");
      Files.createDirectory(dir);
      RevCommit commit = Gfs.commit(gfs).execute().getCommit();
      assertFalse(GitFileUtils.exists("/empty_dir", commit, repo));
    }
  
    @Test
    public void commitEmptyDirectories_theEmptyDirectoriesShouldNotExistInTheResultCommit() throws IOException {
      writeSomethingToGfs();
      Path dir = gfs.getPath("/dir1/dir2");
      Files.createDirectories(dir);
      RevCommit commit = Gfs.commit(gfs).execute().getCommit();
      assertFalse(GitFileUtils.exists("/dir1", commit, repo));
    }
  
    @Test
    public void commitEmptyDirectory_theEmptyDirectoryShouldExistInTheFileSystemAfterTheOperation() throws IOException {
      writeSomethingToGfs();
      Path dir = gfs.getPath("/empty_dir");
      Files.createDirectory(dir);
      Gfs.commit(gfs).execute();
      assertTrue(Files.exists(dir));
    }
  
  
  
  }
  