github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/arm/parser/armjson/parse_boolean_test.go (about) 1 package armjson 2 3 import ( 4 "testing" 5 6 "github.com/khulnasoft-lab/defsec/pkg/types" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func Test_Boolean_True(t *testing.T) { 13 example := []byte(`true`) 14 var output bool 15 metadata := types.NewTestMetadata() 16 err := Unmarshal(example, &output, &metadata) 17 require.NoError(t, err) 18 assert.True(t, output) 19 } 20 21 func Test_Boolean_False(t *testing.T) { 22 example := []byte(`false`) 23 var output bool 24 metadata := types.NewTestMetadata() 25 err := Unmarshal(example, &output, &metadata) 26 require.NoError(t, err) 27 assert.False(t, output) 28 } 29 30 func Test_Boolean_ToNonBoolPointer(t *testing.T) { 31 example := []byte(`false`) 32 var output string 33 metadata := types.NewTestMetadata() 34 err := Unmarshal(example, &output, &metadata) 35 require.Error(t, err) 36 } 37 38 func Test_Bool_ToUninitialisedPointer(t *testing.T) { 39 example := []byte(`true`) 40 var str *string 41 metadata := types.NewTestMetadata() 42 err := Unmarshal(example, str, &metadata) 43 require.Error(t, err) 44 assert.Nil(t, str) 45 } 46 47 func Test_Bool_ToInterface(t *testing.T) { 48 example := []byte(`true`) 49 var output interface{} 50 metadata := types.NewTestMetadata() 51 err := Unmarshal(example, &output, &metadata) 52 require.NoError(t, err) 53 assert.True(t, output.(bool)) 54 }