Ejemplo n.º 1
0
            public void Should_Execute_Script_Code()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.Session.Received(1).Execute(fixture.GetExpectedSource());
            }
Ejemplo n.º 2
0
            public void Should_Create_Session_Via_Session_Factory()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.Engine.Received(1).CreateSession(fixture.Host);
            }
Ejemplo n.º 3
0
            public void Should_Execute_Script_Code()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script);

                // Then
                fixture.Session.Received(1).Execute(Arg.Any <Script>());
            }
Ejemplo n.º 4
0
            public void Should_Throw_If_Script_Is_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                var result = Record.Exception(() => runner.Run(fixture.Host, null, fixture.ArgumentDictionary));

                // Then
                Assert.IsArgumentNullException(result, "script");
            }
Ejemplo n.º 5
0
            public void Should_Throw_If_Arguments_Are_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                var result = Record.Exception(() => runner.Run(fixture.Host, fixture.Script, null));

                // Then
                Assert.IsArgumentNullException(result, "arguments");
            }
Ejemplo n.º 6
0
            public void Should_Add_Namespaces_To_Session(string @namespace)
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                fixture.Session.Received(1).ImportNamespace(@namespace);
            }
Ejemplo n.º 7
0
            public void Should_Set_Working_Directory_To_Script_Directory()
            {
                // Given
                var fixture = new ScriptRunnerFixture("/build/build.cake");
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                Assert.Equal("/build", fixture.Environment.WorkingDirectory.FullPath);
            }
Ejemplo n.º 8
0
            public void Should_Execute_Script_Code()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                fixture.Session.Received(1).Execute(fixture.Source);
            }
Ejemplo n.º 9
0
            public void Should_Initialize_Script_Session_Factory()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                fixture.SessionFactory.Received(1).Initialize();
            }
Ejemplo n.º 10
0
            public void Should_Create_Session_Via_Session_Factory()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                fixture.SessionFactory.Received(1).CreateSession(fixture.Host);
            }
Ejemplo n.º 11
0
            public void Should_Add_References_To_Session(string @assemblyName)
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                fixture.Session.Received(1).AddReference(
                    Arg.Is <Assembly>(a => a.FullName.StartsWith(assemblyName + ", ", StringComparison.OrdinalIgnoreCase)));
            }
Ejemplo n.º 12
0
            public void Should_Throw_If_Session_Factory_Is_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.SessionFactory = null;

                // When
                var result = Record.Exception(() => fixture.CreateScriptRunner());

                // Then
                Assert.IsArgumentNullException(result, "sessionFactory");
            }
Ejemplo n.º 13
0
            public void Should_Set_Working_Directory_To_Script_Directory()
            {
                // Given
                var fixture = new ScriptRunnerFixture("/build/build.cake");
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                fixture.Environment.Received(1).WorkingDirectory
                    = Arg.Is <DirectoryPath>(p => p.FullPath == "/build");
            }
Ejemplo n.º 14
0
            public void Should_Throw_If_Script_Conventions_Is_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.ScriptConventions = null;

                // When
                var result = Record.Exception(() => fixture.CreateScriptRunner());

                // Then
                Assert.IsArgumentNullException(result, "conventions");
            }
Ejemplo n.º 15
0
            public void Should_Generate_Script_Aliases()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.AliasFinder.Received(1).FindAliases(
                    Arg.Any <IEnumerable <Assembly> >());
            }
Ejemplo n.º 16
0
            public void Should_Throw_If_Environment_Is_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.Environment = null;

                // When
                var result = Record.Exception(() => fixture.CreateScriptRunner());

                // Then
                Assert.IsArgumentNullException(result, "environment");
            }
Ejemplo n.º 17
0
            public void Should_Throw_If_Script_Alias_Generator_Is_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.AliasGenerator = null;

                // When
                var result = Record.Exception(() => fixture.CreateScriptRunner());

                // Then
                Assert.IsArgumentNullException(result, "aliasGenerator");
            }
Ejemplo n.º 18
0
            public void Should_Throw_If_AssemblyLoader_Is_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.AssemblyLoader = null;

                // When
                var result = Record.Exception(() => fixture.CreateScriptRunner());

                // Then
                Assert.IsArgumentNullException(result, "assemblyLoader");
            }
Ejemplo n.º 19
0
            public void Should_Throw_If_Script_Host_Is_Null()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.Host = null;

                // When
                var result = Record.Exception(() => fixture.CreateScriptRunner());

                // Then
                Assert.IsType <ArgumentNullException>(result);
                Assert.Equal("host", ((ArgumentNullException)result).ParamName);
            }
Ejemplo n.º 20
0
            public void Should_Set_Arguments()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.Options.Arguments.Add("A", "B");
                var runner = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                Assert.True(fixture.Arguments.HasArgument("A"));
            }
Ejemplo n.º 21
0
            public void Should_Send_Absolute_Install_Path_To_Script_Processor_When_Installing_Tools()
            {
                // Given
                var fixture = new ScriptRunnerFixture("/Working/foo/build.cake");
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, "./foo/build.cake");

                // Then
                fixture.ScriptProcessor.Received(1).InstallTools(
                    Arg.Any <IReadOnlyCollection <PackageReference> >(),
                    Arg.Is <DirectoryPath>(p => p.FullPath == "/Working/foo/tools"));
            }
Ejemplo n.º 22
0
            public void Should_Set_Arguments()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.ArgumentDictionary.Add("A", "B");
                var runner = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.Arguments.Received(1).SetArguments(fixture.ArgumentDictionary);
            }
Ejemplo n.º 23
0
            public void Should_Install_Addins_At_Default_Location_If_No_Configuration_Is_Present()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.ScriptProcessor.Received(1).InstallAddins(
                    Arg.Any <ScriptAnalyzerResult>(),
                    Arg.Is <DirectoryPath>(path => path.FullPath == "/Working/tools/Addins"));
            }
Ejemplo n.º 24
0
            public void Should_Send_Absolute_Install_Path_To_Script_Processor_When_Installing_Tools()
            {
                // Given
                var fixture = new ScriptRunnerFixture("/Working/foo/build.cake");
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, "./foo/build.cake", fixture.ArgumentDictionary);

                // Then
                fixture.ScriptProcessor.Received(1).InstallTools(
                    Arg.Any <ScriptAnalyzerResult>(),
                    Arg.Is <DirectoryPath>(p => p.FullPath == "/Working/foo/tools"));
            }
Ejemplo n.º 25
0
            public void Should_Install_Addins_At_Default_Location_If_No_Configuration_Is_Present()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script);

                // Then
                fixture.ScriptProcessor.Received(1).InstallAddins(
                    Arg.Any <IReadOnlyCollection <PackageReference> >(),
                    Arg.Is <DirectoryPath>(path => path.FullPath == "/Working/tools/Addins"));
            }
Ejemplo n.º 26
0
            public void Should_Generate_Script_Aliases()
            {
                // Given
                var fixture = new ScriptRunnerFixture();
                var runner  = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Options);

                // Then
                fixture.AliasGenerator.Received(1).GenerateScriptAliases(
                    Arg.Any <ScriptProcessorContext>(),
                    Arg.Any <IEnumerable <Assembly> >());
            }
Ejemplo n.º 27
0
            public void Should_Remove_Directory_From_Script_Path(string path)
            {
                // Given
                var fixture = new ScriptRunnerFixture(path);

                fixture.ScriptProcessor = Substitute.For <IScriptProcessor>();
                var runner = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.ScriptProcessor.Received(1).Process(
                    Arg.Is <FilePath>(p => p.FullPath == "build.cake"),
                    Arg.Any <ScriptProcessorContext>());
            }
Ejemplo n.º 28
0
            public void Should_Install_Addins_At_Location_In_Configuration()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.Configuration.GetValue(Constants.Paths.Addins).Returns("./stuff");
                var runner = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.ScriptProcessor.Received(1).InstallAddins(
                    Arg.Any <ScriptAnalyzerResult>(),
                    Arg.Is <DirectoryPath>(path => path.FullPath == "/Working/stuff"));
            }
Ejemplo n.º 29
0
            public void Should_Install_Addins_At_Location_In_Configuration()
            {
                // Given
                var fixture = new ScriptRunnerFixture();

                fixture.Configuration.GetValue(Constants.Paths.Addins).Returns("./stuff");
                var runner = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script);

                // Then
                fixture.ScriptProcessor.Received(1).InstallAddins(
                    Arg.Any <IReadOnlyCollection <PackageReference> >(),
                    Arg.Is <DirectoryPath>(path => path.FullPath == "/Working/stuff"));
            }
Ejemplo n.º 30
0
            public void Should_Remove_Directory_From_Script_Path(string path)
            {
                // Given
                var fixture = new ScriptRunnerFixture(path);

                fixture.ScriptAnalyzer = Substitute.For <IScriptAnalyzer>();
                fixture.ScriptAnalyzer.Analyze(Arg.Any <FilePath>())
                .Returns(new ScriptAnalyzerResult(new ScriptInformation(path), new List <string>()));
                var runner = fixture.CreateScriptRunner();

                // When
                runner.Run(fixture.Host, fixture.Script, fixture.ArgumentDictionary);

                // Then
                fixture.ScriptAnalyzer.Received(1).Analyze(
                    Arg.Is <FilePath>(f => f.FullPath == "build.cake"));
            }