public void ChainedRemoval()
 {
     using (TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\SimpleChain"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(2, reached.Count);
         CollectionAssert.Contains(reached, Path.Combine(temp.DirPath, "foo.rs"));
         CollectionAssert.Contains(reached, Path.Combine(temp.DirPath, "baz.rs"));
         var res = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
         Assert.AreEqual(1, res.Orphans.Count);
         CollectionAssert.Contains(res.Orphans, Path.Combine(temp.DirPath, "baz.rs"));
     }
 }
示例#2
0
 public void ChainedRemoval()
 {
     using(TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\SimpleChain"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(2, reached.Count);
         CollectionAssert.Contains(reached, Path.Combine(temp.DirPath, "foo.rs"));
         CollectionAssert.Contains(reached, Path.Combine(temp.DirPath, "baz.rs"));
         var res = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
         Assert.AreEqual(1, res.Orphans.Count);
         CollectionAssert.Contains(res.Orphans, Path.Combine(temp.DirPath, "baz.rs"));
     }
 }
 public void CircularHard()
 {
     using (TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\Circular"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(0, reached.Count);
         var added = tracker.AddRootModuleIncremental(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(2, added.Count);
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"), Path.Combine(temp.DirPath, "foo.rs"));
         var del = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(3, del.Orphans.Count);
         Assert.False(del.IsReferenced);
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
     }
 }
 public void ExplicitlyAddRemoveExisting()
 {
     using (TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\CircularDowngrade"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(2, reached.Count);
         HashSet <string> added = tracker.AddRootModuleIncremental(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(0, added.Count);
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"), Path.Combine(temp.DirPath, "foo.rs"));
         var del = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(1, del.Orphans.Count);
         Assert.True(del.IsReferenced);
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
     }
 }
示例#5
0
 public void CircularAddRemove()
 {
     using (TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\CircularAdd"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(0, reached.Count);
         HashSet<string> added = tracker.AddRootModuleIncremental(Path.Combine(temp.DirPath, "foo.rs"));
         CollectionAssert.Contains(added, Path.Combine(temp.DirPath, "bar.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"), Path.Combine(temp.DirPath, "foo.rs"));
         var rem = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(2, rem.Orphans.Count);
         CollectionAssert.Contains(rem.Orphans, Path.Combine(temp.DirPath, "bar.rs"));
         CollectionAssert.Contains(rem.Orphans, Path.Combine(temp.DirPath, "foo.rs"));
         Assert.False(rem.IsReferenced);
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
     }
 }
 public void CircularAddRemove()
 {
     using (TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\CircularAdd"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(0, reached.Count);
         HashSet <string> added = tracker.AddRootModuleIncremental(Path.Combine(temp.DirPath, "foo.rs"));
         CollectionAssert.Contains(added, Path.Combine(temp.DirPath, "bar.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"), Path.Combine(temp.DirPath, "foo.rs"));
         var rem = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(2, rem.Orphans.Count);
         CollectionAssert.Contains(rem.Orphans, Path.Combine(temp.DirPath, "bar.rs"));
         CollectionAssert.Contains(rem.Orphans, Path.Combine(temp.DirPath, "foo.rs"));
         Assert.False(rem.IsReferenced);
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
     }
 }
示例#7
0
 public void CircularHard()
 {
     using (TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\Circular"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(0, reached.Count);
         var added = tracker.AddRootModuleIncremental(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(2, added.Count);
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"), Path.Combine(temp.DirPath, "foo.rs"));
         var del = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(3, del.Orphans.Count);
         Assert.False(del.IsReferenced);
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
     }
 }
示例#8
0
 public void ExplicitlyAddUnrootExisting()
 {
     using (TemporaryDirectory temp = Utils.LoadResourceDirectory(@"Internal\CircularDowngrade"))
     {
         var tracker = new ModuleTracker(Path.Combine(temp.DirPath, "main.rs"));
         var reached = tracker.ExtractReachableAndMakeIncremental();
         Assert.AreEqual(2, reached.Count);
         HashSet<string> added = tracker.AddRootModuleIncremental(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(0, added.Count);
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"), Path.Combine(temp.DirPath, "foo.rs"));
         var unr = tracker.DowngradeModule(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(0, unr.Orphans.Count);
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
         var del = tracker.DeleteModule(Path.Combine(temp.DirPath, "foo.rs"));
         Assert.AreEqual(1, del.Orphans.Count);
         Assert.True(del.IsReferenced);
         File.Delete(Path.Combine(temp.DirPath, "foo.rs"));
         ModelCheck(tracker, Path.Combine(temp.DirPath, "main.rs"));
     }
 }