public void Should_Throw_If_DnaFilePath_Is_Null()
        {
            var fixture = new ExcelDnaPackToolFixture(_log);

            fixture.Invoking(f => f.Run())
            .Should().ThrowExactly <CakeException>()
            .And.Message.Should().Be($"{nameof(ExcelDnaPackSettings.DnaFilePath)} setting is required");
        }
        public void Should_Throw_If_Settings_Are_Null()
        {
            var fixture = new ExcelDnaPackToolFixture(_log)
            {
                Settings = null,
            };

            fixture.Invoking(f => f.Run())
            .Should().ThrowExactly <ArgumentNullException>()
            .And.ParamName.Should().Be("settings");
        }
        public void Should_Add_Required_DnaFilePath_and_Disable_PromptBeforeOverwrite_By_Default()
        {
            var fixture = new ExcelDnaPackToolFixture(_log)
            {
                Settings =
                {
                    DnaFilePath = "MyAddin.dna",
                },
            };

            var result = fixture.Run();

            Assert.Equal(@"""MyAddin.dna"" /Y", result.Args);
        }
        public void Should_Add_NoCompression_To_Arguments_If_true(bool?noCompression, string expected)
        {
            var fixture = new ExcelDnaPackToolFixture(_log)
            {
                Settings =
                {
                    DnaFilePath   = "MyAddin.dna",
                    NoCompression = noCompression,
                },
            };

            var result = fixture.Run();

            Assert.Equal($@"""MyAddin.dna"" /Y{expected}", result.Args);
        }
        public void Should_Add_OverwriteXllIfExists_To_Arguments_If_true(bool?promptBeforeOverwrite, string expected)
        {
            var fixture = new ExcelDnaPackToolFixture(_log)
            {
                Settings =
                {
                    DnaFilePath           = "MyAddin.dna",
                    PromptBeforeOverwrite = promptBeforeOverwrite,
                },
            };

            var result = fixture.Run();

            Assert.Equal($@"""MyAddin.dna""{expected}", result.Args);
        }
        public void Should_Add_OutputXllFilePath_To_Arguments_If_true(string outputXllFilePath, string expected)
        {
            var fixture = new ExcelDnaPackToolFixture(_log)
            {
                Settings =
                {
                    DnaFilePath       = "MyAddin.dna",
                    OutputXllFilePath = outputXllFilePath,
                },
            };

            var result = fixture.Run();

            Assert.Equal($@"""MyAddin.dna"" /Y{expected}", result.Args);
        }