public void GetFileStatusTest()
{
GitFileStatusTracker.Init(tempFolder);
GitFileStatusTracker tracker = new GitFileStatusTracker(tempFolder);
File.WriteAllLines(tempFile, lines);
Assert.AreEqual(GitFileStatus.New, tracker.GetFileStatus(tempFile));
tracker.StageFile(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Added, tracker.GetFileStatus(tempFile));
tracker.UnStageFile(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.New, tracker.GetFileStatus(tempFile));
tracker.StageFile(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Added, tracker.GetFileStatus(tempFile));
tracker.Commit("中文 1čtestč");
Assert.AreEqual(GitFileStatus.Tracked, tracker.GetFileStatus(tempFile));
File.WriteAllText(tempFile, "changed text");
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Modified, tracker.GetFileStatus(tempFile));
tracker.StageFile(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Staged, tracker.GetFileStatus(tempFile));
tracker.UnStageFile(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Modified, tracker.GetFileStatus(tempFile));
File.Delete(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Deleted, tracker.GetFileStatus(tempFile));
tracker.StageFile(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Removed, tracker.GetFileStatus(tempFile));
tracker.UnStageFile(tempFile);
tracker.Refresh();
Assert.AreEqual(GitFileStatus.Deleted, tracker.GetFileStatus(tempFile));
}