public void ShouldAddNewItemsToSync() { MockIVsSolution solution = new MockIVsSolution(); TestableProjectLinkTracker tracker = new TestableProjectLinkTracker(new MockDocumentTracker(), solution); MockVsHierarchy project1VsHierarchy = new MockVsHierarchy(); MockVsHierarchy project2VsHierarchy = new MockVsHierarchy(); solution.Hierarchies.Add(project1VsHierarchy); solution.Hierarchies.Add(project2VsHierarchy); tracker.AddProjectLink(project1VsHierarchy.GetPropertyProjectIdGuidValue, project2VsHierarchy.GetPropertyProjectIdGuidValue); Assert.IsTrue(tracker.ProjectsAreLinked(project1VsHierarchy, project2VsHierarchy)); Assert.IsFalse(tracker.ProjectsAreLinked(project2VsHierarchy, project1VsHierarchy)); }
public void ShouldTrackMultipleProjects() { MockIVsSolution solution = new MockIVsSolution(); TestableProjectLinkTracker tracker = new TestableProjectLinkTracker(new MockDocumentTracker(), solution); MockVsHierarchy project1VsHierarchy = new MockVsHierarchy(); MockVsHierarchy project2VsHierarchy = new MockVsHierarchy(); MockVsHierarchy project3VsHierarchy = new MockVsHierarchy(); solution.Hierarchies.Add(project1VsHierarchy); solution.Hierarchies.Add(project2VsHierarchy); solution.Hierarchies.Add(project3VsHierarchy); tracker.AddProjectLink(project1VsHierarchy, project2VsHierarchy); tracker.AddProjectLink(project1VsHierarchy, project3VsHierarchy); Assert.IsTrue(tracker.ProjectsAreLinked(project1VsHierarchy, project2VsHierarchy)); Assert.IsTrue(tracker.ProjectsAreLinked(project1VsHierarchy, project3VsHierarchy)); }
public void ShouldStopTrackingIfSourceProjectIsClosed() { MockIVsSolution solution = new MockIVsSolution(); TestableProjectLinkTracker tracker = new TestableProjectLinkTracker(new MockDocumentTracker(), solution); MockVsHierarchy sourceHierarchy = new MockVsHierarchy(); MockVsHierarchy targetHierarchy = new MockVsHierarchy(); targetHierarchy.GetPropertyProjectValue.Globals.Dictionary["ProjectLinkReference"] = sourceHierarchy.GetPropertyProjectIdGuidValue.ToString(); solution.Hierarchies.Add(sourceHierarchy); tracker.OnAfterOpenProject(sourceHierarchy, 0); tracker.OnAfterOpenProject(targetHierarchy, 0); Assert.IsTrue(tracker.ProjectsAreLinked(sourceHierarchy, targetHierarchy)); tracker.OnBeforeCloseProject(sourceHierarchy, 0); Assert.IsFalse(tracker.ProjectsAreLinked(sourceHierarchy, targetHierarchy)); }