Exemple #1
0
            public void Should_Throw_If_Object_Files_Is_Null()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                var result = Record.Exception(() => runner.Run(null, new LightSettings()));

                // Then
                Assert.IsArgumentNullException(result, "objectFiles");
            }
Exemple #2
0
            public void Should_Throw_If_Source_Files_Is_Null()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                var result = Record.Exception(() => runner.Run(null, new CandleSettings()));

                // Then
                Assert.IsArgumentNullException(result, "sourceFiles");
            }
Exemple #3
0
            public void Should_Throw_If_Settings_Is_Null()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                var result = Record.Exception(() => runner.Run(new[] { new FilePath("/Working/File.lol") }, null));

                // Then
                Assert.IsArgumentNullException(result, "settings");
            }
Exemple #4
0
            public void Should_Throw_If_Source_Files_Is_Null()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                var result = Record.Exception(() => runner.Run(null, new CandleSettings()));

                // Then
                Assert.IsType <ArgumentNullException>(result);
                Assert.Equal("sourceFiles", ((ArgumentNullException)result).ParamName);
            }
Exemple #5
0
            public void Should_Throw_If_Settings_Is_Null()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                var result = Record.Exception(() => runner.Run(new[] { new FilePath("/Working/File.lol") }, null));

                // Then
                Assert.IsType <ArgumentNullException>(result);
                Assert.Equal("settings", ((ArgumentNullException)result).ParamName);
            }
Exemple #6
0
            public void Should_Set_Working_Directory()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings());

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.WorkingDirectory == "/Working"));
            }
Exemple #7
0
            public void Should_Use_Provided_Source_Files_In_Process_Arguments()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs"), new FilePath("./Test2.wxs") }, new CandleSettings());

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.Arguments == "\"/Working/Test.wxs\" \"/Working/Test2.wxs\""));
            }
Exemple #8
0
            public void Should_Find_Candle_Runner_If_Tool_Path_Not_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings());

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.FileName == "/Working/tools/candle.exe"));
            }
Exemple #9
0
            public void Should_Throw_If_Object_Files_Is_Empty()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                var result = Record.Exception(() => runner.Run(new FilePath[0], new LightSettings()));

                // Then
                Assert.IsType <ArgumentException>(result);
                Assert.Equal("objectFiles", ((ArgumentException)result).ParamName);
            }
Exemple #10
0
            public void Should_Throw_If_Globber_Is_Null()
            {
                // Given
                var fixture = new WiXFixture();

                fixture.Globber = null;

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

                // Then
                Assert.IsArgumentNullException(result, "globber");
            }
Exemple #11
0
            public void Should_Use_Provided_Object_Files_In_Process_Arguments()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj"), new FilePath("./Test2.wixobj") }, new LightSettings());

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Any <FilePath>(), Arg.Is <ProcessSettings>(p =>
                                                                   p.Arguments.Render() == "\"/Working/Test.wixobj\" \"/Working/Test2.wixobj\""));
            }
Exemple #12
0
            public void Should_Throw_If_Globber_Is_Null()
            {
                // Given
                var fixture = new WiXFixture();

                fixture.Globber = null;

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

                // Then
                Assert.IsType <ArgumentNullException>(result);
                Assert.Equal("globber", ((ArgumentNullException)result).ParamName);
            }
Exemple #13
0
            public void Should_Find_Light_Runner_If_Tool_Path_Not_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj") }, new LightSettings());

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Is <FilePath>(p => p.FullPath == "/Working/tools/light.exe"),
                    Arg.Any <ProcessSettings>());
            }
Exemple #14
0
            public void Should_Throw_If_Process_Has_A_Non_Zero_Exit_Code()
            {
                // Given
                var fixture = new WiXFixture();

                fixture.Process.GetExitCode().Returns(1);
                var runner = fixture.CreateCandleRunner();

                // When
                var result = Record.Exception(() => runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings()));

                // Then
                Assert.IsType <CakeException>(result);
                Assert.Equal("Candle: Process returned an error.", result.Message);
            }
Exemple #15
0
            public void Should_Throw_If_Light_Runner_Was_Not_Found()
            {
                // Given
                var fixture = new WiXFixture();

                fixture.Globber.Match("./tools/**/light.exe").Returns(Enumerable.Empty <Path>());
                var runner = fixture.CreateLightRunner();

                // When
                var result = Record.Exception(() => runner.Run(new[] { new FilePath("/Test.wixobj") }, new LightSettings()));

                // Then
                Assert.IsType <CakeException>(result);
                Assert.Equal("Light: Could not locate executable.", result.Message);
            }
Exemple #16
0
            public void Should_Use_Light_Runner_From_Tool_Path_If_Provided(string toolPath, string expected)
            {
                // Given
                var fixture = new WiXFixture(expected);
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj") }, new LightSettings
                {
                    ToolPath = toolPath
                });

                // Then
                fixture.ProcessRunner.Received(1).Start(Arg.Is <ProcessStartInfo>(p => p.FileName == expected));
            }
Exemple #17
0
            public void Should_Set_Working_Directory()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj") }, new LightSettings());

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Any <FilePath>(),
                    Arg.Is <ProcessSettings>(p =>
                                             p.WorkingDirectory.FullPath == "/Working"));
            }
Exemple #18
0
            public void Should_Throw_If_Process_Was_Not_Started()
            {
                // Given
                var fixture = new WiXFixture();

                fixture.ProcessRunner.Start(Arg.Any <ProcessStartInfo>()).Returns((IProcess)null);
                var runner = fixture.CreateCandleRunner();

                // When
                var result = Record.Exception(() => runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings()));

                // Then
                Assert.IsType <CakeException>(result);
                Assert.Equal("Candle: Process was not started.", result.Message);
            }
Exemple #19
0
            public void Should_Add_Architecture_To_Arguments_If_Provided(Architecture arch, string expected)
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings
                {
                    Architecture = arch
                });

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.Arguments == string.Concat(expected, " \"/Working/Test.wxs\"")));
            }
Exemple #20
0
            public void Should_Add_Output_Directory_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings
                {
                    OutputDirectory = "obj"
                });

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.Arguments == "-o \"/Working/obj\\\\\" \"/Working/Test.wxs\""));
            }
Exemple #21
0
            public void Should_Add_RawArguments_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj") }, new LightSettings
                {
                    RawArguments = "-dFoo=Bar"
                });

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.Arguments == "-dFoo=Bar \"/Working/Test.wixobj\""));
            }
Exemple #22
0
            public void Should_Add_Verbose_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings
                {
                    Verbose = true
                });

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.Arguments == "-v \"/Working/Test.wxs\""));
            }
Exemple #23
0
            public void Should_Add_Output_Directory_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj") }, new LightSettings
                {
                    OutputFile = "./bin/test.msi"
                });

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.Arguments == "-o \"/Working/bin/test.msi\" \"/Working/Test.wixobj\""));
            }
Exemple #24
0
            public void Should_Use_Candle_Runner_From_Tool_Path_If_Provided(string toolPath, string expected)
            {
                // Given
                var fixture = new WiXFixture(expected);
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings
                {
                    ToolPath = toolPath
                });

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Is <FilePath>(p => p.FullPath == expected),
                    Arg.Any <ProcessSettings>());
            }
Exemple #25
0
            public void Should_Add_Extensions_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings
                {
                    Extensions = new[] { "WixUIExtension" }
                });

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Any <FilePath>(),
                    Arg.Is <ProcessSettings>(p =>
                                             p.Arguments.Render() == "-ext WixUIExtension \"/Working/Test.wxs\""));
            }
Exemple #26
0
            public void Should_Add_Show_Source_Trace_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings
                {
                    ShowSourceTrace = true
                });

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Any <FilePath>(),
                    Arg.Is <ProcessSettings>(p =>
                                             p.Arguments.Render() == "-trace \"/Working/Test.wxs\""));
            }
Exemple #27
0
            public void Should_Add_NoLogo_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj") }, new LightSettings
                {
                    NoLogo = true
                });

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Any <FilePath>(),
                    Arg.Is <ProcessSettings>(p =>
                                             p.Arguments.Render() == "-nologo \"/Working/Test.wixobj\""));
            }
Exemple #28
0
            public void Should_Add_Defines_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateCandleRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wxs") }, new CandleSettings
                {
                    Defines = new Dictionary <string, string>
                    {
                        { "Foo", "Bar" }
                    }
                });

                // Then
                fixture.ProcessRunner.Received(1)
                .Start(Arg.Is <ProcessStartInfo>(p => p.Arguments == "-dFoo=Bar \"/Working/Test.wxs\""));
            }
Exemple #29
0
            public void Should_Add_Defines_To_Arguments_If_Provided()
            {
                // Given
                var fixture = new WiXFixture();
                var runner  = fixture.CreateLightRunner();

                // When
                runner.Run(new[] { new FilePath("./Test.wixobj") }, new LightSettings
                {
                    Defines = new Dictionary <string, string>
                    {
                        { "Foo", "Bar" }
                    }
                });

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Any <FilePath>(),
                    Arg.Is <ProcessSettings>(p =>
                                             p.Arguments.Render() == "-dFoo=Bar \"/Working/Test.wixobj\""));
            }