github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/arm/parser/template_test.go (about) 1 package parser 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 types2 "github.com/khulnasoft-lab/defsec/pkg/scanners/azure" 9 "github.com/khulnasoft-lab/defsec/pkg/types" 10 11 "github.com/khulnasoft-lab/defsec/pkg/scanners/azure/arm/parser/armjson" 12 13 "github.com/stretchr/testify/assert" 14 15 "github.com/stretchr/testify/require" 16 ) 17 18 func Test_JSONUnmarshal(t *testing.T) { 19 data, err := os.ReadFile(filepath.Join("testdata", "example.json")) 20 require.NoError(t, err) 21 var target Template 22 metadata := types.NewTestMetadata() 23 require.NoError(t, armjson.Unmarshal(data, &target, &metadata)) 24 assert.Equal(t, 25 "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", 26 target.Schema.AsString(), 27 ) 28 require.Len(t, target.Schema.Comments, 2) 29 assert.Equal(t, " wow this is a comment", target.Schema.Comments[0]) 30 assert.Equal(t, " another one", target.Schema.Comments[1]) 31 32 assert.Equal(t, "1.0.0.0", target.ContentVersion.Raw()) 33 require.Len(t, target.ContentVersion.Comments, 1) 34 assert.Equal(t, " this version is great", target.ContentVersion.Comments[0]) 35 36 require.Contains(t, target.Parameters, "storagePrefix") 37 prefix := target.Parameters["storagePrefix"] 38 /* 39 "type": "string", 40 "defaultValue": "x", 41 "maxLength": 11, 42 "minLength": 3 43 */ 44 assert.Equal(t, "string", prefix.Type.Raw()) 45 assert.Equal(t, types2.KindString, prefix.Type.Kind) 46 assert.Equal(t, 8, prefix.Type.Metadata.Range().GetStartLine()) 47 assert.Equal(t, 8, prefix.Type.Metadata.Range().GetEndLine()) 48 49 assert.Equal(t, "x", prefix.DefaultValue.Raw()) 50 assert.Equal(t, types2.KindString, prefix.DefaultValue.Kind) 51 assert.Equal(t, 9, prefix.DefaultValue.Metadata.Range().GetStartLine()) 52 assert.Equal(t, 9, prefix.DefaultValue.Metadata.Range().GetEndLine()) 53 54 assert.Equal(t, int64(11), prefix.MaxLength.Raw()) 55 assert.Equal(t, types2.KindNumber, prefix.MaxLength.Kind) 56 assert.Equal(t, 10, prefix.MaxLength.Metadata.Range().GetStartLine()) 57 assert.Equal(t, 10, prefix.MaxLength.Metadata.Range().GetEndLine()) 58 59 assert.Equal(t, int64(3), prefix.MinLength.Raw()) 60 assert.Equal(t, types2.KindNumber, prefix.MinLength.Kind) 61 assert.Equal(t, 11, prefix.MinLength.Metadata.Range().GetStartLine()) 62 assert.Equal(t, 11, prefix.MinLength.Metadata.Range().GetEndLine()) 63 }