github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/formatters/checkstyle_test.go (about) 1 package formatters 2 3 import ( 4 "bytes" 5 "testing" 6 7 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 8 9 "github.com/khulnasoft-lab/defsec/pkg/severity" 10 11 "github.com/khulnasoft-lab/defsec/pkg/scan" 12 13 "github.com/khulnasoft-lab/defsec/pkg/providers" 14 "github.com/khulnasoft-lab/defsec/pkg/providers/aws/dynamodb" 15 16 "github.com/stretchr/testify/assert" 17 ) 18 19 func TestOutputCheckStyle(t *testing.T) { 20 want := "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<checkstyle version=\"5.0\">\n\t<file name=\"test.test\">\n\t\t<error source=\"aws-dynamodb-enable-at-rest-encryption\" line=\"123\" column=\"0\" severity=\"error\" message=\"Cluster encryption is not enabled.\" link=\"\"></error>\n\t</file>\n</checkstyle>" 21 wantErr := error(nil) 22 23 results := scan.Results{} 24 results.Add("Cluster encryption is not enabled.", 25 dynamodb.ServerSideEncryption{ 26 Metadata: defsecTypes.NewTestMetadata(), 27 Enabled: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 28 }) 29 results.SetRule(scan.Rule{Severity: severity.High, Provider: providers.AWSProvider, Service: "dynamodb", ShortCode: "enable-at-rest-encryption"}) 30 31 var buf bytes.Buffer 32 factory := New().AsCheckStyle().WithWriter(&buf).Build() 33 34 err := factory.Output(results) 35 36 assert.Equal(t, wantErr, err) 37 assert.Equal(t, want, buf.String()) 38 39 } 40 41 func TestConvertSeverity(t *testing.T) { 42 type test struct { 43 severity severity.Severity 44 want string 45 } 46 47 tests := []test{ 48 {severity: severity.Low, want: "info"}, 49 {severity: severity.Medium, want: "warning"}, 50 {severity: severity.High, want: "error"}, 51 {severity: severity.Critical, want: "error"}, 52 {severity: severity.None, want: "error"}, 53 } 54 55 for _, tc := range tests { 56 got := convertSeverity(tc.severity) 57 assert.Equal(t, tc.want, got) 58 } 59 }