public void CanRevert() { var elementFirst = Persister.Commit(new VcsCommit { File = new FileDescriptor { Path = "test" } }, GenerateStreamFromString("test data")); var elementSecond = Persister.Commit(new VcsCommit { File = new FileDescriptor { Path = "test" } }, GenerateStreamFromString("SOMETESTDATA")); var elementThird = Persister.Commit(new VcsCommit { File = new FileDescriptor { Path = "test" } }, GenerateStreamFromString("ANOTHERDTA")); var picked = Persister.Pick(new VcsCommit { File = new FileDescriptor { Path = "test" } }); Assert.IsNotNull(picked); var sr = new StreamReader(picked); var content = sr.ReadToEnd(); sr.Close(); Assert.AreEqual("ANOTHERDTA", content); Persister.Revert(elementSecond); picked = Persister.Pick(new VcsCommit { File = new FileDescriptor { Path = "test" } }); content = new StreamReader(picked).ReadToEnd(); Assert.AreEqual("SOMETESTDATA", content); // выражает то, что изначально у на было три элемента, а после реверта стало 4, т.е. // ревер не сносит все старшие комиты, а накатывает поверх Assert.AreEqual(4, Persister.Count(new FileDescriptor { Path = "test" })); }