mirror of
https://github.com/anchore/syft.git
synced 2026-10-30 14:02:26 +01:00
Signed-off-by: Gijs Calis <51088038+GijsCalis@users.noreply.github.com> Signed-off-by: Keith Zantow <kzantow@gmail.com> Co-authored-by: Keith Zantow <kzantow@gmail.com>
104 lines
2.3 KiB
Go
104 lines
2.3 KiB
Go
package java
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/mitchellh/go-homedir"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_defaultMavenLocalRepoDir(t *testing.T) {
|
|
home, err := homedir.Dir()
|
|
require.NoError(t, err)
|
|
|
|
fixtures, err := filepath.Abs("test-fixtures")
|
|
require.NoError(t, err)
|
|
|
|
tests := []struct {
|
|
name string
|
|
home string
|
|
expected string
|
|
}{
|
|
{
|
|
name: "default",
|
|
expected: filepath.Join(home, ".m2", "repository"),
|
|
home: "",
|
|
},
|
|
{
|
|
name: "alternate dir",
|
|
expected: "/some/other/repo",
|
|
home: "test-fixtures/local-repository-settings",
|
|
},
|
|
{
|
|
name: "explicit home",
|
|
expected: filepath.Join(fixtures, ".m2", "repository"),
|
|
home: "test-fixtures",
|
|
},
|
|
}
|
|
for _, test := range tests {
|
|
t.Run(test.name, func(t *testing.T) {
|
|
homedir.Reset()
|
|
defer homedir.Reset()
|
|
if test.home != "" {
|
|
home, err := filepath.Abs(test.home)
|
|
require.NoError(t, err)
|
|
t.Setenv("HOME", home)
|
|
}
|
|
got := defaultMavenLocalRepoDir()
|
|
require.Equal(t, test.expected, got)
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_getSettingsXmlLocalRepository(t *testing.T) {
|
|
tests := []struct {
|
|
file string
|
|
expected string
|
|
}{
|
|
{
|
|
expected: "/some/other/repo",
|
|
file: "test-fixtures/local-repository-settings/.m2/settings.xml",
|
|
},
|
|
{
|
|
expected: "",
|
|
file: "invalid",
|
|
},
|
|
}
|
|
for _, test := range tests {
|
|
t.Run(test.expected, func(t *testing.T) {
|
|
f, _ := os.Open(test.file)
|
|
defer f.Close()
|
|
got := getSettingsXMLLocalRepository(f)
|
|
require.Equal(t, test.expected, got)
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_remotePomURL(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
groupID string
|
|
artifactID string
|
|
version string
|
|
expected string
|
|
}{
|
|
{
|
|
name: "formatMavenURL correctly assembles the pom URL",
|
|
groupID: "org.springframework.boot",
|
|
artifactID: "spring-boot-starter-test",
|
|
version: "3.1.5",
|
|
expected: "https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter-test/3.1.5/spring-boot-starter-test-3.1.5.pom",
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
requestURL, err := remotePomURL(mavenBaseURL, tc.groupID, tc.artifactID, tc.version)
|
|
require.NoError(t, err, "expected no err; got %w", err)
|
|
require.Equal(t, tc.expected, requestURL)
|
|
})
|
|
}
|
|
}
|