code: package com.beijunyi.parallelgit.filesystem;
  
  import java.io.IOException;
  import java.nio.file.Files;
  
  import org.junit.Test;
  
  import static org.junit.Assert.*;
  
  public class GfsStatusProviderIsDirtyTest extends PreSetupGitFileSystemTest {
  
    @Test
    public void testIsDirtyWhenStoreIsFresh_shouldReturnFalse() throws IOException {
      assertFalse(statusProvider.isDirty());
    }
  
    @Test
    public void testIsDirtyWhenRootLevelFileIsChanged_shouldReturnTrue() throws IOException {
      Files.write(gfs.getPath("/some_file.txt"), someBytes());
      assertTrue(statusProvider.isDirty());
    }
  
    @Test
    public void testIsDirtyWhenNonRootLevelFileIsChanged_shouldReturnTrue() throws IOException {
      Files.createDirectories(gfs.getPath("/dir"));
      Files.write(gfs.getPath("/dir/some_file.txt"), someBytes());
      assertTrue(statusProvider.isDirty());
    }
  
    @Test
    public void testIsDirtyAfterChangesAreCommitted_shouldReturnFalse() throws IOException {
      Files.write(gfs.getPath("/some_file.txt"), someBytes());
      Gfs.commit(gfs).execute();
      assertFalse(statusProvider.isDirty());
    }
  
  
  
  }
  