public void Should_Throw_If_NuGet_Package_Installer_Is_Null() { // Given var fixture = new ScriptProcessorFixture(); fixture.Installer = null; // When var result = Record.Exception(() => fixture.CreateProcessor()); // Then Assert.IsArgumentNullException(result, "installer"); }
public void Should_Throw_If_File_System_Is_Null() { // Given var fixture = new ScriptProcessorFixture(); fixture.FileSystem = null; // When var result = Record.Exception(() => fixture.CreateProcessor()); // Then Assert.IsArgumentNullException(result, "fileSystem"); }
public void Should_Remove_Shebang() { // Given var fixture = new ScriptProcessorFixture(scriptSource: "#!usr/bin/cake\r\nConsole.WriteLine();"); // When var result = fixture.Process(); // Then Assert.Equal(2, result.Lines.Count); Assert.Equal("#line 1 \"/Working/build.cake\"", result.Lines.ElementAt(0)); Assert.Equal("Console.WriteLine();", result.Lines.ElementAt(1)); }
public void Should_Return_Multiple_Assembly_References_Found_In_Source_Regardless_Of_Location(string source) { // Given var fixture = new ScriptProcessorFixture(scriptSource: source); // When var result = fixture.Process(); // Then Assert.Equal(2, result.References.Count); Assert.Equal("hello.dll", result.References.ElementAt(0)); Assert.Equal("world.dll", result.References.ElementAt(1)); }
public void Should_Process_Using_Alias_Directives() { // Given var fixture = new ScriptProcessorFixture(scriptSource: "using ClassAlias = N1.N2.Class;\r\nConsole.WriteLine();"); // When var result = fixture.Process(); // Then Assert.Equal(2, result.Lines.Count); Assert.Equal("#line 1 \"/Working/build.cake\"", result.Lines.ElementAt(0)); Assert.Equal("Console.WriteLine();", result.Lines.ElementAt(1)); }
public void Should_Return_Single_Assembly_Reference_Found_In_Source() { // Given const string source = "#r \"hello.dll\"\r\nConsole.WriteLine();"; var fixture = new ScriptProcessorFixture(scriptSource: source); // When var result = fixture.Process(); // Then Assert.Equal(1, result.References.Count); Assert.Equal("hello.dll", result.References.ElementAt(0)); }
public void Should_Throw_If_Install_Path_Is_Null() { // Given var fixture = new ScriptProcessorFixture(); fixture.InstallPath = null; // When var result = Record.Exception(() => fixture.InstallAddins()); // Then Assert.IsArgumentNullException(result, "installPath"); }
public void Should_Throw_If_Environment_Is_Null() { // Given var fixture = new ScriptProcessorFixture(); fixture.Environment = null; // When var result = Record.Exception(() => fixture.CreateProcessor()); // Then Assert.IsArgumentNullException(result, "environment"); }
public void Should_Throw_If_Installer_Could_Not_Be_Resolved() { // Given var fixture = new ScriptProcessorFixture(); fixture.GivenNoInstallerCouldBeResolved(); // When var result = Record.Exception(() => fixture.InstallTools()); // Then Assert.IsCakeException(result, "Could not find an installer for the 'custom' scheme."); }
public void Should_Throw_If_Analyzer_Result_Is_Null() { // Given var fixture = new ScriptProcessorFixture(); fixture.Result = null; // When var result = Record.Exception(() => fixture.InstallTools()); // Then Assert.IsArgumentNullException(result, "analyzerResult"); }
public void Should_Register_Installed_Tools_With_The_Tool_Service() { // Given var fixture = new ScriptProcessorFixture(); fixture.GivenFilesWillBeInstalled(); // When fixture.InstallTools(); // Then fixture.Tools.Received(1).RegisterFile( Arg.Is <FilePath>(path => path.FullPath == "/Working/Bin/Temp.dll")); }
public void Should_Throw_If_Environment_Is_Null() { // Given var fixture = new ScriptProcessorFixture(); fixture.Environment = null; // When var result = Record.Exception(() => fixture.CreateProcessor()); // Then Assert.IsType <ArgumentNullException>(result); Assert.Equal("environment", ((ArgumentNullException)result).ParamName); }
public void Should_Not_Install_Addins_Present_On_Disc() { // Given var fixture = new ScriptProcessorFixture(); fixture.GivenToolFilesAlreadyHaveBeenDownloaded(); // When fixture.InstallTools(); // Then fixture.Installer.Received(0) .InstallPackage(Arg.Any <NuGetPackage>(), Arg.Any <DirectoryPath>()); }
public void Should_Process_Single_Script_Reference_Found_In_Source(string source) { // Given var fixture = new ScriptProcessorFixture(scriptSource: source); fixture.FileSystem.CreateFile("/Working/hello.cake"); // When var result = fixture.Process(); // Then Assert.Equal(2, result.ProcessedScripts.Count); Assert.Equal("/Working/build.cake", result.ProcessedScripts.ElementAt(0)); Assert.Equal("/Working/hello.cake", result.ProcessedScripts.ElementAt(1)); }
public void Should_Install_Tools_Referenced_By_Scripts() { // Given var fixture = new ScriptProcessorFixture(); fixture.GivenFilesWillBeInstalled(); // When fixture.InstallTools(); // Then fixture.Installer.Received(1).Install( Arg.Is <PackageReference>(package => package.OriginalString == "custom:?package=tool"), Arg.Is <PackageType>(type => type == PackageType.Tool), Arg.Is <DirectoryPath>(path => path.FullPath == "/Working/Bin")); }
public void Should_Keep_Using_Block() { // Given var fixture = new ScriptProcessorFixture(scriptSource: "using (ClassAlias)\r\n{\r\n}\r\nConsole.WriteLine();"); // When var result = fixture.Process(); // Then Assert.Equal(5, result.Lines.Count); Assert.Equal("#line 1 \"/Working/build.cake\"", result.Lines.ElementAt(0)); Assert.Equal("using (ClassAlias)", result.Lines.ElementAt(1)); Assert.Equal("{", result.Lines.ElementAt(2)); Assert.Equal("}", result.Lines.ElementAt(3)); Assert.Equal("Console.WriteLine();", result.Lines.ElementAt(4)); }
public void Should_Install_Addins_Referenced_By_Scripts() { // Given var fixture = new ScriptProcessorFixture(); fixture.GivenAddinFilesAreDownloaded(); // When fixture.InstallAddins(); // Then fixture.Installer.Received(1).InstallPackage( Arg.Is <NuGetPackage>(package => package.PackageId == "Addin" && package.Source == "http://example.com"), Arg.Any <DirectoryPath>()); }
public void Should_Process_Multiple_Script_References_Found_In_Source() { // Given const string source = "#l \"hello.cake\"\r\n#l \"world.cake\"\r\nConsole.WriteLine();"; var fixture = new ScriptProcessorFixture(scriptSource: source); fixture.FileSystem.GetCreatedFile("/Working/hello.cake"); fixture.FileSystem.GetCreatedFile("/Working/world.cake"); // When var result = fixture.Process(); // Then Assert.Equal(3, result.ProcessedScripts.Count); Assert.Equal("/Working/build.cake", result.ProcessedScripts.ElementAt(0)); Assert.Equal("/Working/hello.cake", result.ProcessedScripts.ElementAt(1)); Assert.Equal("/Working/world.cake", result.ProcessedScripts.ElementAt(2)); }