github.com/wata727/tflint@v0.12.2-0.20191013070026-96dd0d36f385/rules/rule_test.go.tmpl (about) 1 package awsrules 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/golang/mock/gomock" 8 hcl "github.com/hashicorp/hcl/v2" 9 "github.com/wata727/tflint/client" 10 "github.com/wata727/tflint/tflint" 11 ) 12 13 func Test_{{ .RuleNameCC }}(t *testing.T) { 14 cases := []struct { 15 Name string 16 Content string 17 Response service.Response 18 Expected tflint.Issues 19 }{ 20 { 21 Name: "basic", 22 Content: ` 23 resource "null_resource" "null" { 24 } 25 `, 26 Response: service.Reponse{}, 27 Expected: tflint.Issues{ 28 { 29 Rule: New{{ .RuleNameCC }}Rule(), 30 Message: "TODO", 31 Range: hcl.Range{ 32 Filename: "resource.tf", 33 Start: hcl.Pos{Line: 0, Column: 0}, 34 End: hcl.Pos{Line: 0, Column: 0}, 35 }, 36 }, 37 }, 38 }, 39 } 40 41 ctrl := gomock.NewController(t) 42 defer ctrl.Finish() 43 44 for _, tc := range cases { 45 runner := tflint.TestRunner(t, map[string]string{"resource.tf": tc.Content}) 46 47 mock := client.NewMockAPI(ctrl) 48 mock.EXPECT().CallAPI().Return(tc.Response, nil) 49 runner.AwsClient.Service = mock 50 51 rule := New{{ .RuleNameCC }}Rule() 52 if err := rule.Check(runner); err != nil { 53 t.Fatalf("Unexpected error occurred: %s", err) 54 } 55 56 tflint.AssertIssues(t, tc.Expected, runner.Issues) 57 } 58 } 59 60 func Test_{{ .RuleNameCC }}_error(t *testing.T) { 61 cases := []struct { 62 Name string 63 Content string 64 Response error 65 Error tflint.Error 66 }{ 67 { 68 Name: "API error", 69 Content: ` 70 resource "null_resource" "null" { 71 }`, 72 Response: errors.New("Some error"), 73 Error: tflint.Error{ 74 Code: tflint.ExternalAPIError, 75 Level: tflint.ErrorLevel, 76 Message: "Some error", 77 }, 78 }, 79 } 80 81 ctrl := gomock.NewController(t) 82 defer ctrl.Finish() 83 84 for _, tc := range cases { 85 runner := tflint.TestRunner(t, map[string]string{"resource.tf": tc.Content}) 86 87 mock := mock.NewMockAPI(ctrl) 88 mock.EXPECT().CallAPI().Return(nil, tc.Response) 89 runner.AwsClient.Service = mock 90 91 rule := New{{ .RuleNameCC }}Rule() 92 err := rule.Check(runner) 93 tflint.AssertAppError(t, tc.Error, err) 94 } 95 }