package com.beijunyi.parallelgit.filesystem;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.NotDirectoryException;

import org.junit.Test;

import static org.junit.Assert.assertNotNull;

public class FilesDirectoryStreamTest extends AbstractGitFileSystemTest {

 @Test
 public void openDirectory_shouldReturnDirectoryStream() throws IOException {
   initRepository();
   writeToCache("/dir/file.txt");
   commitToMaster();
   initGitFileSystem();
   assertNotNull(Files.newDirectoryStream(gfs.getPath("/dir")));
 }

  @Test(expected = NotDirectoryException.class)
  public void openRegularFile_shouldThrowException() throws IOException {
    initRepository();
    writeToCache("/file.txt");
    commitToMaster();
    initGitFileSystem();
    Files.newDirectoryStream(gfs.getPath("/file.txt"));
  }

  @Test(expected = NotDirectoryException.class)
  public void openNonExistentDirectory_shouldThrowException() throws IOException {
    initGitFileSystem();
    Files.newDirectoryStream(gfs.getPath("/non_existent_directory"));
  }

}