public void Should_Replace_Template_Tokens_In_Nuspec_Without_Namespaces() { // Given var fixture = new NuGetPackerFixture(); fixture.WithNuSpecXml(Resources.Nuspec_NoMetadataValues_WithoutNamespaces); fixture.Settings.Id = "The ID"; fixture.Settings.Version = "The version"; fixture.Settings.Title = "The title"; fixture.Settings.Authors = new[] { "Author #1", "Author #2" }; fixture.Settings.Owners = new[] { "Owner #1", "Owner #2" }; fixture.Settings.Description = "The description"; fixture.Settings.Summary = "The summary"; fixture.Settings.LicenseUrl = new Uri("https://license.com"); fixture.Settings.ProjectUrl = new Uri("https://project.com"); fixture.Settings.IconUrl = new Uri("https://icon.com"); fixture.Settings.RequireLicenseAcceptance = true; fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; // When var result = fixture.Pack(); // Then Assert.Equal( Resources.Nuspec_Metadata_WithoutNamespaces.NormalizeLineEndings(), result.NormalizeLineEndings()); }
public void Should_Pack_If_Sufficent_Settings_Specified() { // Given var fixture = new NuGetPackerFixture(); fixture.NuSpecFilePath = null; fixture.Settings.OutputDirectory = "/Working/"; fixture.Settings.Id = "nonexisting"; fixture.Settings.Version = "1.0.0"; fixture.Settings.Description = "The description"; fixture.Settings.Authors = new[] { "Author #1", "Author #2" }; fixture.Settings.Files = new NuSpecContent[] { new NuSpecContent { Source = "LICENSE" } }; // When fixture.Pack(false); // Then fixture.ProcessRunner.Received(1).Start( Arg.Any <FilePath>(), Arg.Is <ProcessSettings>(p => p.Arguments.Render() == "pack -Version \"1.0.0\" -OutputDirectory \"/Working\" \"/Working/nonexisting.temp.nuspec\"")); }
public void Should_Replace_Template_Tokens_In_Nuspec() { // Given var fixture = new NuGetPackerFixture(); fixture.Settings.Id = "The ID"; fixture.Settings.Version = "The version"; fixture.Settings.Title = "The title"; fixture.Settings.Authors = new[] { "Author #1", "Author #2" }; fixture.Settings.Owners = new[] { "Owner #1", "Owner #2" }; fixture.Settings.Description = "The description"; fixture.Settings.Summary = "The summary"; fixture.Settings.LicenseUrl = new Uri("https://license.com"); fixture.Settings.ProjectUrl = new Uri("https://project.com"); fixture.Settings.IconUrl = new Uri("https://icon.com"); fixture.Settings.RequireLicenseAcceptance = true; fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; // When fixture.Pack(); // Then Assert.Equal( Resources.Nuspec_Metadata.NormalizeLineEndings(), fixture.FileSystem.GetTextContent("/Working/existing.temp.nuspec").NormalizeLineEndings()); }
public void Should_Delete_Transformed_Nuspec() { // Given var fixture = new NuGetPackerFixture(); // When fixture.Pack(); // Then Assert.False(fixture.FileSystem.Exist((FilePath)"/Working/existing.temp.nuspec")); }
public void Should_Throw_If_Nuspec_File_Path_Is_Null() { // Given var fixture = new NuGetPackerFixture(); fixture.NuSpecFilePath = null; // When var result = Record.Exception(() => fixture.Pack()); // Then Assert.IsArgumentNullException(result, "nuspecFilePath"); }
public void Should_Throw_If_Temporary_Nuspec_Already_Exist() { // Given var fixture = new NuGetPackerFixture(); fixture.GivenTemporaryNuSpecAlreadyExist(); // When var result = Record.Exception(() => fixture.Pack()); // Then Assert.IsCakeException(result, "Could not create the nuspec file '/Working/existing.temp.nuspec' since it already exist."); }
public void Should_Throw_If_Nuspec_Do_Not_Exist() { // Given var fixture = new NuGetPackerFixture(); fixture.NuSpecFilePath = "./nonexisting.nuspec"; // When var result = Record.Exception(() => fixture.Pack()); // Then Assert.IsCakeException(result, "Could not find nuspec file '/Working/nonexisting.nuspec'."); }
public void Should_Throw_If_Process_Has_A_Non_Zero_Exit_Code() { // Given var fixture = new NuGetPackerFixture(); fixture.GivenProcessReturnError(); // When var result = Record.Exception(() => fixture.Pack()); // Then Assert.IsCakeException(result, "NuGet: Process returned an error."); }
public void Should_Throw_If_Process_Was_Not_Started() { // Given var fixture = new NuGetPackerFixture(); fixture.GivenProcessCannotStart(); // When var result = Record.Exception(() => fixture.Pack()); // Then Assert.IsCakeException(result, "NuGet: Process was not started."); }
public void Should_Throw_If_NuGet_Executable_Was_Not_Found() { // Given var fixture = new NuGetPackerFixture(); fixture.GivenDefaultToolDoNotExist(); // When var result = Record.Exception(() => fixture.Pack()); // Then Assert.IsCakeException(result, "NuGet: Could not locate executable."); }
public void Should_Find_NuGet_Executable_If_Tool_Path_Not_Provided() { // Given var fixture = new NuGetPackerFixture(); // When fixture.Pack(); // Then fixture.ProcessRunner.Received(1).Start( Arg.Is <FilePath>(p => p.FullPath == "/Working/tools/NuGet.exe"), Arg.Any <ProcessSettings>()); }
public void Should_Throw_If_OutputDirectory_Setting_Not_Specified() { // Given var fixture = new NuGetPackerFixture(); fixture.NuSpecFilePath = null; // When var result = Record.Exception(() => fixture.Pack(false)); // Then Assert.IsCakeException(result, "Required setting OutputDirectory not specified or doesn't exists."); }
public void Should_Throw_If_Settings_Is_Null() { // Given var fixture = new NuGetPackerFixture(); fixture.Settings = null; // When var result = Record.Exception(() => fixture.Pack()); // Then Assert.IsArgumentNullException(result, "settings"); }
public void Should_Throw_If_Id_Setting_Not_Specified() { // Given var fixture = new NuGetPackerFixture(); fixture.NuSpecFilePath = null; fixture.Settings.OutputDirectory = "/Working/"; // When var result = Record.Exception(() => fixture.Pack(false)); // Then Assert.IsCakeException(result, "Required setting Id not specified."); }
public void Should_Add_Verbosity_To_Arguments_If_Set(NuGetVerbosity verbosity, string expected) { // Given var fixture = new NuGetPackerFixture(); fixture.Settings.Verbosity = verbosity; // When fixture.Pack(); // Then fixture.ProcessRunner.Received(1).Start( Arg.Any <FilePath>(), Arg.Is <ProcessSettings>(p => p.Arguments.Render() == expected)); }
public void Should_Use_NuGet_Executable_From_Tool_Path_If_Provided(string toolPath, string expected) { // Given var fixture = new NuGetPackerFixture(); fixture.Settings.ToolPath = toolPath; fixture.GivenCustomToolPathExist(expected); // When fixture.Pack(); // Then fixture.ProcessRunner.Received(1).Start( Arg.Is <FilePath>(p => p.FullPath == expected), Arg.Any <ProcessSettings>()); }
public void Should_Add_Version_To_Arguments_If_Not_Null() { // Given var fixture = new NuGetPackerFixture(); fixture.Settings.Version = "1.0.0"; // When fixture.Pack(); // Then fixture.ProcessRunner.Received(1).Start( Arg.Any <FilePath>(), Arg.Is <ProcessSettings>(p => p.Arguments.Render() == "pack -Version \"1.0.0\" \"/Working/existing.temp.nuspec\"")); }
public void Should_Add_Output_Directory_To_Arguments_If_Not_Null() { // Given var fixture = new NuGetPackerFixture(); fixture.Settings.OutputDirectory = "./build/output"; // When fixture.Pack(); // Then fixture.ProcessRunner.Received(1).Start( Arg.Any <FilePath>(), Arg.Is <ProcessSettings>(p => p.Arguments.Render() == "pack -OutputDirectory \"/Working/build/output\" \"/Working/existing.temp.nuspec\"")); }
public void Should_Add_Symbols_Flag_To_Arguments_If_Set() { // Given var fixture = new NuGetPackerFixture(); fixture.Settings.Symbols = true; // When fixture.Pack(); // Then fixture.ProcessRunner.Received(1).Start( Arg.Any <FilePath>(), Arg.Is <ProcessSettings>(p => p.Arguments.Render() == "pack \"/Working/existing.temp.nuspec\" -Symbols")); }
public void Should_Throw_If_Description_Setting_Not_Specified() { // Given var fixture = new NuGetPackerFixture(); fixture.NuSpecFilePath = null; fixture.Settings.OutputDirectory = "/Working/"; fixture.Settings.Id = "nonexisting"; fixture.Settings.Version = "1.0.0"; fixture.Settings.Authors = new[] { "Author #1", "Author #2" }; // When var result = Record.Exception(() => fixture.Pack(false)); // Then Assert.IsCakeException(result, "Required setting Description not specified."); }
public void Should_Replace_Template_Tokens_In_Nuspec_With_Files_Without_Namespaces() { // Given var fixture = new NuGetPackerFixture(); fixture.WithNuSpecXml(Resources.Nuspec_NoMetadataValues_WithoutNamespaces); fixture.Settings.Id = "The ID"; fixture.Settings.Version = "The version"; fixture.Settings.Title = "The title"; fixture.Settings.Authors = new[] { "Author #1", "Author #2" }; fixture.Settings.Owners = new[] { "Owner #1", "Owner #2" }; fixture.Settings.Description = "The description"; fixture.Settings.Summary = "The summary"; fixture.Settings.LicenseUrl = new Uri("https://license.com"); fixture.Settings.ProjectUrl = new Uri("https://project.com"); fixture.Settings.IconUrl = new Uri("https://icon.com"); fixture.Settings.RequireLicenseAcceptance = true; fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; fixture.Settings.Files = new[] { new NuSpecContent { Source = "Cake.Core.dll", Target = "lib/net45" }, new NuSpecContent { Source = "Cake.Core.xml", Target = "lib/net45" }, new NuSpecContent { Source = "Cake.Core.pdb", Target = "lib/net45" }, new NuSpecContent { Source = "LICENSE" } }; // When fixture.Pack(); // Then Assert.Equal( Resources.Nuspec_Metadata_WithoutNamespaces.NormalizeLineEndings(), fixture.FileSystem.GetTextContent("/Working/existing.temp.nuspec").NormalizeLineEndings()); }