public void CanRetrieveTheStatusOfANewRepository() { SelfCleaningDirectory scd = BuildSelfCleaningDirectory(); using (var repo = Repository.Init(scd.DirectoryPath)) { RepositoryStatus status = repo.Index.RetrieveStatus(); status.ShouldNotBeNull(); status.Count().ShouldEqual(0); status.IsDirty.ShouldBeFalse(); status.Untracked.Count().ShouldEqual(0); status.Modified.Count().ShouldEqual(0); status.Missing.Count().ShouldEqual(0); status.Added.Count().ShouldEqual(0); status.Staged.Count().ShouldEqual(0); status.Removed.Count().ShouldEqual(0); } }
public void CanRetrieveTheStatusOfTheWholeWorkingDirectory() { TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoWorkingDirPath); using (var repo = new Repository(path.RepositoryPath)) { const string file = "modified_staged_file.txt"; RepositoryStatus status = repo.Index.RetrieveStatus(); IndexEntry indexEntry = repo.Index[file]; indexEntry.State.ShouldEqual(FileStatus.Staged); status.ShouldNotBeNull(); status.Count().ShouldEqual(6); status.IsDirty.ShouldBeTrue(); status.Untracked.Single().ShouldEqual("new_untracked_file.txt"); status.Modified.Single().ShouldEqual("modified_unstaged_file.txt"); status.Missing.Single().ShouldEqual("deleted_unstaged_file.txt"); status.Added.Single().ShouldEqual("new_tracked_file.txt"); status.Staged.Single().ShouldEqual(file); status.Removed.Single().ShouldEqual("deleted_staged_file.txt"); File.AppendAllText(Path.Combine(repo.Info.WorkingDirectory, file), "Tclem's favorite commit message: boom"); indexEntry.State.ShouldEqual(FileStatus.Staged | FileStatus.Modified); RepositoryStatus status2 = repo.Index.RetrieveStatus(); status2.ShouldNotBeNull(); status2.Count().ShouldEqual(6); status2.IsDirty.ShouldBeTrue(); status2.Untracked.Single().ShouldEqual("new_untracked_file.txt"); CollectionAssert.AreEqual(new[] { file, "modified_unstaged_file.txt" }, status2.Modified); status2.Missing.Single().ShouldEqual("deleted_unstaged_file.txt"); status2.Added.Single().ShouldEqual("new_tracked_file.txt"); status2.Staged.Single().ShouldEqual(file); status2.Removed.Single().ShouldEqual("deleted_staged_file.txt"); } }