public void ShouldRemoveLinkedFileWhenDeletingFromSource() { string sourceFile = @"c:\mockPath1\MyClass.cs"; var mockLogger = new MockLogger(); var sourceProject = new MockProject(@"c:\mockPath1\project1.csproj"); var targetProject = new MockProject(); var targetFile = new MockProjectItem(sourceFile, true); targetProject.ProjectItems.AddProjectItem(targetFile); var syncher = new ProjectItemsSynchronizer(sourceProject, targetProject, mockLogger, null, new MockProjectItemsFilter()); Assert.AreEqual(1, targetProject.ProjectItems.Count); syncher.FileRemovedFromSource(sourceFile); Assert.IsTrue(targetFile.DeleteCalled); Assert.AreEqual(1, mockLogger.MessageLog.Count); StringAssert.Contains(mockLogger.MessageLog[0], "removed"); StringAssert.Contains(mockLogger.MessageLog[0], @"MyClass.cs"); StringAssert.Contains(mockLogger.MessageLog[0], targetProject.Name); }
public void ShouldNotRemoveFileIfTargetFileIsNotALink() { var mockLogger = new MockLogger(); var sourceProject = new MockProject(@"c:\mockPath1\project1.csproj"); var targetProject = new MockProject(); var targetFile = new MockProjectItem("MyClass.cs") { Kind = Constants.vsProjectItemKindPhysicalFile }; targetProject.ProjectItems.AddProjectItem(targetFile); string sourceFile = Path.Combine(@"c:\mockPath1", @"MyClass.cs"); var syncher = new ProjectItemsSynchronizer(sourceProject, targetProject, mockLogger, null, new MockProjectItemsFilter()); Assert.AreEqual(1, targetProject.ProjectItems.Count); syncher.FileRemovedFromSource(sourceFile); Assert.IsFalse(targetFile.DeleteCalled); Assert.AreEqual(1, mockLogger.MessageLog.Count); StringAssert.Contains(mockLogger.MessageLog[0], "not linked"); StringAssert.Contains(mockLogger.MessageLog[0], @"MyClass.cs"); StringAssert.Contains(mockLogger.MessageLog[0], targetProject.Name); }
public void ShouldRemoveLinkedFileInSubFolderWhenDeletingFromSource() { string sourceFile = @"c:\mockPath1\SubFolder\MyClass.cs"; var sourceProject = new MockProject(@"c:\mockPath1\project1.csproj"); var targetProject = new MockProject(); var subFolder = new MockProjectItem("SubFolder") { Kind = Constants.vsProjectItemKindPhysicalFolder }; var targetFile = new MockProjectItem(sourceFile, true); subFolder.ProjectItems.AddProjectItem(targetFile); targetProject.ProjectItems.AddProjectItem(subFolder); var syncher = new ProjectItemsSynchronizer(sourceProject, targetProject, new MockLogger(), null, new MockProjectItemsFilter()); syncher.FileRemovedFromSource(sourceFile); Assert.IsTrue(targetFile.DeleteCalled); }
public void ShouldLogMessageIfFileDoesNotExistInTargetProject() { var mockLogger = new MockLogger(); var sourceProject = new MockProject(@"c:\mockPath1\project1.csproj"); var targetProject = new MockProject(); string sourceFile = Path.Combine(@"c:\mockPath1", @"MyClass.cs"); var syncher = new ProjectItemsSynchronizer(sourceProject, targetProject, mockLogger, null, new MockProjectItemsFilter()); syncher.FileRemovedFromSource(sourceFile); Assert.AreEqual(1, mockLogger.MessageLog.Count); StringAssert.Contains(mockLogger.MessageLog[0], "not linked"); StringAssert.Contains(mockLogger.MessageLog[0], @"MyClass.cs"); StringAssert.Contains(mockLogger.MessageLog[0], targetProject.Name); }