Example #1
0
        public void Should_not_have_error_when_has_inline_template(string actionType)
        {
            var context = new DeploymentActionValidationContext(actionType,
                                                                new Dictionary <string, string>
            {
                { KnownVariables.Action.Script.ScriptSource, KnownVariableValues.Action.Script.ScriptSource.Inline },
                { TerraformSpecialVariables.Action.Terraform.Template, "{}" }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeTrue();
        }
Example #2
0
        public void Should_have_no_error_when_azure_account_is_specified()
        {
            var context = new DeploymentActionValidationContext(TerraformActionTypes.Plan,
                                                                new Dictionary <string, string>
            {
                { TerraformSpecialVariables.Action.Terraform.AzureAccount, bool.TrueString },
                { "Octopus.Action.AzureAccount.Variable", "Myvariable" }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeTrue();
        }
Example #3
0
        public void Should_have_error_when_empty_inline_template(string actionType)
        {
            var context = new DeploymentActionValidationContext(actionType,
                                                                new Dictionary <string, string>
            {
                { KnownVariables.Action.Script.ScriptSource, KnownVariableValues.Action.Script.ScriptSource.Inline }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().ContainSingle().Which.PropertyName.Should().Be(TerraformSpecialVariables.Action.Terraform.Template);
        }
Example #4
0
        public void Should_have_error_when_azure_account_not_specified()
        {
            var context = new DeploymentActionValidationContext(TerraformActionTypes.Plan,
                                                                new Dictionary <string, string>
            {
                { TerraformSpecialVariables.Action.Terraform.AzureAccount, bool.TrueString }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().ContainSingle().Which.PropertyName.Should().Be("Octopus.Action.AzureAccount.Variable");
        }
Example #5
0
        public void Should_have_no_error_when_package_template_is_specified(string actionType)
        {
            var context = new DeploymentActionValidationContext(actionType,
                                                                new Dictionary <string, string>
            {
                { KnownVariables.Action.Script.ScriptSource, KnownVariableValues.Action.Script.ScriptSource.Package }
            },
                                                                new List <PackageReference> {
                new PackageReference("packageId", "feedId".ToFeedIdOrName())
            });

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeTrue();
        }
Example #6
0
        public void Should_have_no_error_when_aws_account_with_account_variable_specified()
        {
            var context = new DeploymentActionValidationContext(TerraformActionTypes.Plan,
                                                                new Dictionary <string, string>
            {
                { TerraformSpecialVariables.Action.Terraform.ManagedAccount, TerraformSpecialVariables.AwsAccount },
                { TerraformSpecialVariables.Action.Aws.AssumeRole, bool.FalseString },
                { TerraformSpecialVariables.Action.Aws.AwsRegion, "MyRegion" },
                { TerraformSpecialVariables.Action.Aws.AccountVariable, "MyVariable" }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeTrue();
        }
Example #7
0
        public void Should_have_no_error_when_inline_template_with_valid_inline_variables(
            [Values(TerraformActionTypes.Apply, TerraformActionTypes.Destroy)] string actionType,
            [Values(HclOneVariables, HclTwoVariables)] string template)
        {
            var context = new DeploymentActionValidationContext(actionType,
                                                                new Dictionary <string, string>
            {
                { KnownVariables.Action.Script.ScriptSource, KnownVariableValues.Action.Script.ScriptSource.Inline },
                { TerraformSpecialVariables.Action.Terraform.Template, template },
                {
                    TerraformSpecialVariables.Action.Terraform.TemplateParameters,
                    "{\"map\":\"{foo = \\\"bar\\\", baz = \\\"qux\\\"}\"}"
                }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeTrue();
        }
Example #8
0
        public void Should_have_error_when_inline_template_with_invalid_inline_variables(
            [Values(TerraformActionTypes.Apply, TerraformActionTypes.Destroy)] string actionType,
            [Values(HclOneVariables, HclTwoVariables)] string template)
        {
            var context = new DeploymentActionValidationContext(actionType,
                                                                new Dictionary <string, string>
            {
                { KnownVariables.Action.Script.ScriptSource, KnownVariableValues.Action.Script.ScriptSource.Inline },
                { TerraformSpecialVariables.Action.Terraform.Template, template },
                {
                    TerraformSpecialVariables.Action.Terraform.TemplateParameters,
                    @"{""list"": ""invalid list"", ""map"": ""invalid map""}"
                }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().ContainSingle().Which.PropertyName.Should().Be("Properties");
        }
Example #9
0
        public void Should_have_error_when_aws_account_has_no_roles_specified()
        {
            var context = new DeploymentActionValidationContext(TerraformActionTypes.Plan,
                                                                new Dictionary <string, string>
            {
                { TerraformSpecialVariables.Action.Terraform.ManagedAccount, TerraformSpecialVariables.AwsAccount },
                { TerraformSpecialVariables.Action.Aws.AssumeRole, bool.TrueString },
                { TerraformSpecialVariables.Action.Aws.AwsRegion, "MyRegion" },
                { TerraformSpecialVariables.Action.Aws.AccountVariable, "MyVariable" }
            },
                                                                new List <PackageReference>());

            var result = validator.TestValidate(context);

            result.IsValid.Should().BeFalse();
            result.Errors.Select(_ => _.PropertyName)
            .Should()
            .Equal(
                TerraformSpecialVariables.Action.Aws.AssumedRoleArn,
                TerraformSpecialVariables.Action.Aws.AssumedRoleSession);
        }