github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/cpe/merge_cpes_test.go (about)

     1  package cpe
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func Test_Merge(t *testing.T) {
    10  	tests := []struct {
    11  		name     string
    12  		input    [][]CPE
    13  		expected []CPE
    14  	}{
    15  		{
    16  			name: "merge, removing duplicates and ordered",
    17  			input: [][]CPE{
    18  				{
    19  					Must("cpe:2.3:a:*:package:1:*:*:*:*:*:*:*"),
    20  					Must("cpe:2.3:a:some:package:*:*:*:*:*:*:*:*"),
    21  				},
    22  				{
    23  					Must("cpe:2.3:a:some:package:1:*:*:*:*:*:*:*"),
    24  					Must("cpe:2.3:a:some:package:*:*:*:*:*:*:*:*"),
    25  				},
    26  			},
    27  			expected: []CPE{
    28  				Must("cpe:2.3:a:some:package:1:*:*:*:*:*:*:*"),
    29  				Must("cpe:2.3:a:some:package:*:*:*:*:*:*:*:*"),
    30  				Must("cpe:2.3:a:*:package:1:*:*:*:*:*:*:*"),
    31  			},
    32  		},
    33  	}
    34  
    35  	for _, test := range tests {
    36  		t.Run(test.name, func(t *testing.T) {
    37  			out := Merge(test.input[0], test.input[1])
    38  			assert.Equal(t, test.expected, out)
    39  		})
    40  	}
    41  }