github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/syft/lib_test.go (about)

     1  package syft
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/anchore/syft/syft/artifact"
     9  	"github.com/anchore/syft/syft/pkg"
    10  )
    11  
    12  func Test_removeRelationshipsByID(t *testing.T) {
    13  	p1 := pkg.Package{}
    14  	p1.OverrideID("1")
    15  
    16  	p2 := pkg.Package{}
    17  	p2.OverrideID("2")
    18  
    19  	p3 := pkg.Package{}
    20  	p3.OverrideID("3")
    21  
    22  	rel := func(pkgs ...pkg.Package) (out []artifact.Relationship) {
    23  		for _, p := range pkgs {
    24  			out = append(out, artifact.Relationship{
    25  				From: p,
    26  				To:   p,
    27  				Type: artifact.OwnershipByFileOverlapRelationship,
    28  			})
    29  		}
    30  		return
    31  	}
    32  
    33  	relationships := rel(p1, p2, p3)
    34  
    35  	for _, r := range relationships {
    36  		if r.From.ID() == "1" || r.From.ID() == "2" {
    37  			relationships = removeRelationshipsByID(relationships, r.From.ID())
    38  		}
    39  	}
    40  
    41  	require.Equal(t, rel(p3), relationships)
    42  }