public void OnlyIncludeFilesWhichExist() { // arrange var mockFileSystem = MockGenerator.CreateMockFileSystem(); // mock Bar.dll to not exist mockFileSystem.Setup(fs => fs.FileExists(It.IsAny <string>())).Returns <string>((s) => !s.Contains("Bar.dll")); var mockMSBuildProject = MockGenerator.CreateMockMSBuildProject(); mockMSBuildProject.Setup(p => p.GetItemsWithMetadataProperty("Reference", "HintPath")).Returns(new Dictionary <string, string>() { { "Foo", @"packages\Foo.dll" }, { "Bar", @"packages\Bar.dll" }, { "Baz", @"packages\Baz.dll" } }); Dependencies.FileSystem = mockFileSystem.Object; Dependencies.MSBuildProjectFactory = MockGenerator.CreateMSBuildProjectFactory(mockMSBuildProject.Object); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\Dummy\Dummy.csproj"); var results = projectSystem.GetAssemblyReferencePaths(); // assert string[] expected = { @"C:\Dummy\packages\Foo.dll", @"C:\Dummy\packages\Baz.dll" }; Assert.Equal(expected, results); }
public void FindProjectFile_CreateMSBuildProjectSystem(string[] files) { var mockFileSystem = new Mock <IFileSystem>(); mockFileSystem.Setup(fs => fs.DirectoryGetFiles(@"C:\DummyPath")).Returns(files); // act var factory = new NuGetProjectFactory(mockFileSystem.Object, MockGenerator.CreateMSBuildProjectFactory()); var project = factory.CreateProject(@"C:\DummyPath"); // assert Assert.Equal(typeof(NuGetMsBuildProjectSystem), project.GetType()); }
public void ReturnsFullPaths(string inputPath, IEnumerable <string> expected) { // arrange var mockFileSystem = MockGenerator.CreateMockFileSystem(); mockFileSystem.Setup(fs => fs.FileExists(It.IsAny <string>())).Returns(true); var mockMSBuildProject = MockGenerator.CreateMockMSBuildProject(); mockMSBuildProject.Setup(p => p.GetItemsWithMetadataProperty("Reference", "HintPath")).Returns(new Dictionary <string, string>() { { Path.GetFileNameWithoutExtension(inputPath), inputPath } }); Dependencies.FileSystem = mockFileSystem.Object; Dependencies.MSBuildProjectFactory = MockGenerator.CreateMSBuildProjectFactory(mockMSBuildProject.Object); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\Dummy\Dummy.csproj"); var results = projectSystem.GetAssemblyReferencePaths(); // assert Assert.Equal(expected, results); }
public void AddingReference_CallSaveProject() { // arrange var mockProject = MockGenerator.CreateMockMSBuildProject_SaveMethodVerifiable(); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory(mockProject.Object)); projectSystem.AddReference(@"C:\DummyPath\packages\Dummy.dll", Stream.Null); // assert mockProject.Verify(); }
public void UseRelativeHintPath(string fullPath, string hintPath) { // arrange var mockProject = MockGenerator.CreateMockMSBuildProject(); string actualHint = ""; mockProject.Setup(p => p.AddReference(It.IsAny <string>(), It.IsAny <string>())) .Callback <string, string>((_, hint) => actualHint = hint) .Verifiable(); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory(mockProject.Object)); projectSystem.AddReference(fullPath, Stream.Null); // assert Assert.Equal(hintPath, actualHint); mockProject.Verify(); }
public void IfNameNullOrEmpty_Throws() { var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory()); Assert.Throws <ArgumentNullException>(() => projectSystem.AddReference(null, Stream.Null)); Assert.Throws <ArgumentNullException>(() => projectSystem.AddReference(string.Empty, Stream.Null)); }
public void AddingFrameworkReference_CallSaveProject() { // arrange var mockProject = MockGenerator.CreateMockMSBuildProject_SaveMethodVerifiable(); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory(mockProject.Object)); projectSystem.AddFrameworkReference("System.Web"); // assert mockProject.Verify(); }
public void ResolvePaths_DoesNotModifyAnyPath(string input, string expected) { var projSystem = new NuGetMsBuildProjectSystem(@"Dummy\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory()); Assert.Equal(expected, projSystem.ResolvePath(input)); }
public void RootIsContainingFolder() { // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory()); // assert Assert.Equal(projectSystem.Root, @"C:\DummyPath"); }
public void IfReferenceDoesntExist_NoOp() { // arrange var mockProject = new Mock <IMSBuildProject>(MockBehavior.Strict); mockProject.Setup(p => p.ReferenceExists(It.Is <string>(s => s == "Dummy" || s == "Dummy.dll"))).Returns(false).Verifiable(); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory(mockProject.Object)); projectSystem.RemoveReference(@"Dummy.dll"); // assert mockProject.Verify(); // MockBehavior.Strict verifies that no others are called. }
public void RemovingReference_CallSaveProject() { // arrange var mockProject = MockGenerator.CreateMockMSBuildProject_SaveMethodVerifiable(); mockProject.Setup(p => p.ReferenceExists(It.Is <string>(s => s == "Dummy" || s == "Dummy.dll"))).Returns(true); mockProject.Setup(p => p.RemoveItem("Reference", "Dummy")).Verifiable(); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory(mockProject.Object)); projectSystem.RemoveReference(@"Dummy.dll"); // assert mockProject.Verify(); }
public void OnlySearchReferenceItemType() { // arrange var mockProject = MockGenerator.CreateMockMSBuildProject(); mockProject.Setup(p => p.ReferenceExists("DummyReference")).Returns(false).Verifiable(); mockProject.Setup(p => p.ItemExists("Content", "DummyReference")).Returns(true); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory(mockProject.Object)); // assert Assert.False(projectSystem.ReferenceExists("DummyReference.dll")); mockProject.Verify(); }
public void StripExtensionFromReferenceName(string assemblyName, string expectedReferenceName) { // arrange var mockProject = MockGenerator.CreateMockMSBuildProject(); mockProject.Setup(p => p.ReferenceExists(expectedReferenceName)).Verifiable(); // act var projectSystem = new NuGetMsBuildProjectSystem(@"C:\DummyPath\Dummy.csproj", MockGenerator.CreateMSBuildProjectFactory(mockProject.Object)); // assert Assert.False(projectSystem.ReferenceExists(assemblyName)); mockProject.Verify(); }