github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/pkg/cataloger/java/package_url_test.go (about)

     1  package java
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/nextlinux/gosbom/gosbom/pkg"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func Test_packageURL(t *testing.T) {
    11  	tests := []struct {
    12  		pkg    pkg.Package
    13  		expect string
    14  	}{
    15  		{
    16  			pkg: pkg.Package{
    17  				Name:         "example-java-app-maven",
    18  				Version:      "0.1.0",
    19  				Language:     pkg.Java,
    20  				Type:         pkg.JavaPkg,
    21  				MetadataType: pkg.JavaMetadataType,
    22  				Metadata: pkg.JavaMetadata{
    23  					VirtualPath: "test-fixtures/java-builds/packages/example-java-app-maven-0.1.0.jar",
    24  					Manifest: &pkg.JavaManifest{
    25  						Main: map[string]string{
    26  							"Manifest-Version": "1.0",
    27  						},
    28  					},
    29  					PomProperties: &pkg.PomProperties{
    30  						Path:       "META-INF/maven/org.anchore/example-java-app-maven/pom.properties",
    31  						GroupID:    "org.anchore",
    32  						ArtifactID: "example-java-app-maven",
    33  						Version:    "0.1.0",
    34  						Extra:      make(map[string]string),
    35  					},
    36  				},
    37  			},
    38  			expect: "pkg:maven/org.anchore/example-java-app-maven@0.1.0",
    39  		},
    40  	}
    41  	for _, tt := range tests {
    42  		t.Run(tt.expect, func(t *testing.T) {
    43  			assert.Equal(t, tt.expect, packageURL(tt.pkg.Name, tt.pkg.Version, tt.pkg.Metadata.(pkg.JavaMetadata)))
    44  		})
    45  	}
    46  }