Exemplo n.º 1
0
            public void Should_Replace_Template_Tokens_In_Nuspec_Without_Namespaces()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.WithNuSpecXml(Resources.ChocolateyNuspec_NoMetadataValues_WithoutNamespaces);

                fixture.Settings.Id                       = "The ID";
                fixture.Settings.Title                    = "The title";
                fixture.Settings.Version                  = "The version";
                fixture.Settings.Authors                  = new[] { "Author #1", "Author #2" };
                fixture.Settings.Owners                   = new[] { "Owner #1", "Owner #2" };
                fixture.Settings.Summary                  = "The summary";
                fixture.Settings.Description              = "The description";
                fixture.Settings.ProjectUrl               = new Uri("https://project.com");
                fixture.Settings.PackageSourceUrl         = new Uri("https://packagesource.com");
                fixture.Settings.ProjectSourceUrl         = new Uri("https://projectsource.com");
                fixture.Settings.DocsUrl                  = new Uri("https://docs.com");
                fixture.Settings.MailingListUrl           = new Uri("https://mailing.com");
                fixture.Settings.BugTrackerUrl            = new Uri("https://bug.com");
                fixture.Settings.Tags                     = new[] { "Tag1", "Tag2", "Tag3" };
                fixture.Settings.Copyright                = "The copyright";
                fixture.Settings.LicenseUrl               = new Uri("https://license.com");
                fixture.Settings.RequireLicenseAcceptance = true;
                fixture.Settings.IconUrl                  = new Uri("https://icon.com");
                fixture.Settings.ReleaseNotes             = new[] { "Line #1", "Line #2", "Line #3" };

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(
                    Resources.ChocolateyNuspec_Metadata_WithoutNamespaces.NormalizeLineEndings(),
                    result.NuspecContent.NormalizeLineEndings());
            }
Exemplo n.º 2
0
            public void Should_Find_Chocolatey_Executable_If_Tool_Path_Not_Provided()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("/Working/tools/choco.exe", result.Path.FullPath);
            }
Exemplo n.º 3
0
            public void Should_Delete_Transformed_Nuspec()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                // When
                fixture.Run();

                // Then
                Assert.False(fixture.FileSystem.Exist((FilePath)"/Working/existing.temp.nuspec"));
            }
Exemplo n.º 4
0
            public void Should_Throw_If_Settings_Is_Null()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings = null;

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

                // Then
                Assert.IsArgumentNullException(result, "settings");
            }
Exemplo n.º 5
0
            public void Should_Add_AllowUnofficial_Flag_To_Arguments_If_Set(bool allowUnofficial, string expected)
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings.AllowUnofficial = allowUnofficial;

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(expected, result.Args);
            }
Exemplo n.º 6
0
            public void Should_Add_CacheLocation_Flag_To_Arguments_If_Set(string cacheLocation, string expected)
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings.CacheLocation = cacheLocation;

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(expected, result.Args);
            }
Exemplo n.º 7
0
            public void Should_Add_ExecutionTimeout_To_Arguments_If_Set(int executionTimeout, string expected)
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings.ExecutionTimeout = executionTimeout;

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(expected, result.Args);
            }
Exemplo n.º 8
0
            public void Should_Add_Force_Flag_To_Arguments_If_Set(bool force, string expected)
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings.Force = force;

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(expected, result.Args);
            }
Exemplo n.º 9
0
            public void Should_Throw_If_Nuspec_File_Path_Is_Null()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.NuSpecFilePath = null;

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

                // Then
                Assert.IsArgumentNullException(result, "nuspecFilePath");
            }
Exemplo n.º 10
0
            public void Should_Throw_If_Temporary_Nuspec_Already_Exist()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.GivenTemporaryNuSpecAlreadyExist();

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

                // Then
                Assert.IsCakeException(result, "Could not create the nuspec file '/Working/existing.temp.nuspec' since it already exist.");
            }
Exemplo n.º 11
0
            public void Should_Throw_If_Nuspec_Do_Not_Exist()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.NuSpecFilePath = "./nonexisting.nuspec";

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

                // Then
                Assert.IsCakeException(result, "Could not find nuspec file '/Working/nonexisting.nuspec'.");
            }
Exemplo n.º 12
0
            public void Should_Throw_If_Process_Has_A_Non_Zero_Exit_Code()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.GivenProcessExitsWithCode(1);

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

                // Then
                Assert.IsCakeException(result, "Chocolatey: Process returned an error (exit code 1).");
            }
Exemplo n.º 13
0
            public void Should_Throw_If_Process_Was_Not_Started()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.GivenProcessCannotStart();

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

                // Then
                Assert.IsCakeException(result, "Chocolatey: Process was not started.");
            }
Exemplo n.º 14
0
            public void Should_Throw_If_Chocolatey_Executable_Was_Not_Found()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.GivenDefaultToolDoNotExist();

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

                // Then
                Assert.IsCakeException(result, "Chocolatey: Could not locate executable.");
            }
Exemplo n.º 15
0
            public void Should_Add_LimitOutput_Flag_To_Arguments_If_Set(bool limitOutput, string expected)
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings.LimitOutput = limitOutput;

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(expected, result.Args);
            }
Exemplo n.º 16
0
            public void Should_Add_Version_To_Arguments_If_Not_Null()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings.Version = "1.0.0";

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("pack -y --version \"1.0.0\" " +
                             "\"/Working/existing.temp.nuspec\"", result.Args);
            }
Exemplo n.º 17
0
            public void Should_Use_Chocolatey_Executable_From_Tool_Path_If_Provided_On_Windows(string toolPath, string expected)
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.Settings.ToolPath = toolPath;
                fixture.GivenSettingsToolPathExist();

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(expected, result.Path.FullPath);
            }
Exemplo n.º 18
0
            public void Should_Add_Metadata_Element_To_Nuspec_If_Missing()
            {
                // Given
                var fixture = new ChocolateyPackerWithNuSpecFixture();

                fixture.WithNuSpecXml(Resources.ChocolateyNuspec_NoMetadataElement);

                fixture.Settings.Id                       = "The ID";
                fixture.Settings.Title                    = "The title";
                fixture.Settings.Version                  = "The version";
                fixture.Settings.Authors                  = new[] { "Author #1", "Author #2" };
                fixture.Settings.Owners                   = new[] { "Owner #1", "Owner #2" };
                fixture.Settings.Summary                  = "The summary";
                fixture.Settings.Description              = "The description";
                fixture.Settings.ProjectUrl               = new Uri("https://project.com");
                fixture.Settings.PackageSourceUrl         = new Uri("https://packagesource.com");
                fixture.Settings.ProjectSourceUrl         = new Uri("https://projectsource.com");
                fixture.Settings.DocsUrl                  = new Uri("https://docs.com");
                fixture.Settings.MailingListUrl           = new Uri("https://mailing.com");
                fixture.Settings.BugTrackerUrl            = new Uri("https://bug.com");
                fixture.Settings.Tags                     = new[] { "Tag1", "Tag2", "Tag3" };
                fixture.Settings.Copyright                = "The copyright";
                fixture.Settings.LicenseUrl               = new Uri("https://license.com");
                fixture.Settings.RequireLicenseAcceptance = true;
                fixture.Settings.IconUrl                  = new Uri("https://icon.com");
                fixture.Settings.ReleaseNotes             = new[] { "Line #1", "Line #2", "Line #3" };
                fixture.Settings.Dependencies             = new[]
                {
                    new ChocolateyNuSpecDependency {
                        Id = "Dependency1", Version = "1.0.0"
                    },
                    new ChocolateyNuSpecDependency {
                        Id = "Dependency2", Version = "[2.0.0]"
                    }
                };

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(
                    Resources.ChocolateyNuspec_Metadata.NormalizeLineEndings(),
                    result.NuspecContent.NormalizeLineEndings());
            }