Ejemplo n.º 1
0
            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");
            }
Ejemplo n.º 2
0
            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");
            }
Ejemplo n.º 3
0
            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));
            }
Ejemplo n.º 4
0
            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));
            }
Ejemplo n.º 5
0
            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));
            }
Ejemplo n.º 6
0
            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));
            }
Ejemplo n.º 7
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");
            }
Ejemplo n.º 8
0
            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");
            }
Ejemplo n.º 9
0
            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.");
            }
Ejemplo n.º 10
0
            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");
            }
Ejemplo n.º 11
0
            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"));
            }
Ejemplo n.º 12
0
            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);
            }
Ejemplo n.º 13
0
            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>());
            }
Ejemplo n.º 14
0
            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));
            }
Ejemplo n.º 15
0
            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"));
            }
Ejemplo n.º 16
0
            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));
            }
Ejemplo n.º 17
0
            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>());
            }
Ejemplo n.º 18
0
            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));
            }