github.com/wata727/tflint@v0.12.2-0.20191013070026-96dd0d36f385/rules/awsrules/aws_db_instance_default_parameter_group_test.go (about)

     1  package awsrules
     2  
     3  import (
     4  	"testing"
     5  
     6  	hcl "github.com/hashicorp/hcl/v2"
     7  	"github.com/wata727/tflint/tflint"
     8  )
     9  
    10  func Test_AwsDBInstanceDefaultParameterGroup(t *testing.T) {
    11  	cases := []struct {
    12  		Name     string
    13  		Content  string
    14  		Expected tflint.Issues
    15  	}{
    16  		{
    17  			Name: "default.mysql5.6 is default parameter group",
    18  			Content: `
    19  resource "aws_db_instance" "db" {
    20      parameter_group_name = "default.mysql5.6"
    21  }`,
    22  			Expected: tflint.Issues{
    23  				{
    24  					Rule:    NewAwsDBInstanceDefaultParameterGroupRule(),
    25  					Message: "\"default.mysql5.6\" is default parameter group. You cannot edit it.",
    26  					Range: hcl.Range{
    27  						Filename: "resource.tf",
    28  						Start:    hcl.Pos{Line: 3, Column: 28},
    29  						End:      hcl.Pos{Line: 3, Column: 46},
    30  					},
    31  				},
    32  			},
    33  		},
    34  		{
    35  			Name: "application5.6 is not default parameter group",
    36  			Content: `
    37  resource "aws_db_instance" "db" {
    38      parameter_group_name = "application5.6"
    39  }`,
    40  			Expected: tflint.Issues{},
    41  		},
    42  	}
    43  
    44  	rule := NewAwsDBInstanceDefaultParameterGroupRule()
    45  
    46  	for _, tc := range cases {
    47  		runner := tflint.TestRunner(t, map[string]string{"resource.tf": tc.Content})
    48  
    49  		if err := rule.Check(runner); err != nil {
    50  			t.Fatalf("Unexpected error occurred: %s", err)
    51  		}
    52  
    53  		tflint.AssertIssues(t, tc.Expected, runner.Issues)
    54  	}
    55  }