github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/pkg/scanners/cloudformation/parser/fn_builtin_test.go (about)

     1  package parser
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func Test_cidr_generator(t *testing.T) {
    11  
    12  	original := &Property{
    13  		ctx:     nil,
    14  		name:    "cidr",
    15  		comment: "",
    16  		Inner: PropertyInner{
    17  			Type:  "",
    18  			Value: nil,
    19  		},
    20  	}
    21  
    22  	ranges, err := calculateCidrs("10.1.0.0/16", 4, 4, original)
    23  	require.Nil(t, err)
    24  	require.Len(t, ranges, 4)
    25  
    26  	results := make(map[int]string)
    27  	for i, property := range ranges {
    28  		value := property.AsString()
    29  		results[i] = value
    30  	}
    31  
    32  	assert.Equal(t, "10.1.0.0/20", results[0])
    33  	assert.Equal(t, "10.1.16.0/20", results[1])
    34  	assert.Equal(t, "10.1.32.0/20", results[2])
    35  	assert.Equal(t, "10.1.48.0/20", results[3])
    36  }
    37  
    38  func Test_cidr_generator_8_bits(t *testing.T) {
    39  	original := &Property{
    40  		ctx:     nil,
    41  		name:    "cidr",
    42  		comment: "",
    43  		Inner: PropertyInner{
    44  			Type:  "",
    45  			Value: nil,
    46  		},
    47  	}
    48  
    49  	ranges, err := calculateCidrs("10.1.0.0/16", 4, 8, original)
    50  	require.Nil(t, err)
    51  	require.Len(t, ranges, 4)
    52  
    53  	results := make(map[int]string)
    54  	for i, property := range ranges {
    55  		value := property.AsString()
    56  		results[i] = value
    57  	}
    58  
    59  	assert.Equal(t, "10.1.0.0/24", results[0])
    60  	assert.Equal(t, "10.1.1.0/24", results[1])
    61  	assert.Equal(t, "10.1.2.0/24", results[2])
    62  	assert.Equal(t, "10.1.3.0/24", results[3])
    63  }