improve LanguageByName and add unit tests (#1034)

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>
This commit is contained in:
Weston Steimel 2022-06-07 13:09:09 +00:00 committed by GitHub
parent 5e2ab0874d
commit 05be9e25ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 111 additions and 3 deletions

View File

@ -62,11 +62,11 @@ func LanguageByName(name string) Language {
return JavaScript return JavaScript
case packageurl.TypePyPi, string(Python): case packageurl.TypePyPi, string(Python):
return Python return Python
case packageurl.TypeGem: case packageurl.TypeGem, string(Ruby):
return Ruby return Ruby
case purlCargoPkgType: case purlCargoPkgType, string(RustPkg), string(Rust):
return Rust return Rust
case packageurl.TypePub, string(Dart): case packageurl.TypePub, string(DartPubPkg), string(Dart):
return Dart return Dart
case packageurl.TypeDotnet: case packageurl.TypeDotnet:
return Dotnet return Dotnet

View File

@ -73,3 +73,111 @@ func TestLanguageFromPURL(t *testing.T) {
assert.ElementsMatch(t, expectedLanguages.List(), languages, "missing one or more languages to test against (maybe a package type was added?)") assert.ElementsMatch(t, expectedLanguages.List(), languages, "missing one or more languages to test against (maybe a package type was added?)")
} }
func TestLanguageByName(t *testing.T) {
tests := []struct {
name string
language Language
}{
{
name: "maven",
language: Java,
},
{
name: "java",
language: Java,
},
{
name: "java-archive",
language: Java,
},
{
name: "java",
language: Java,
},
{
name: "composer",
language: PHP,
},
{
name: "php-composer",
language: PHP,
},
{
name: "php",
language: PHP,
},
{
name: "go",
language: Go,
},
{
name: "golang",
language: Go,
},
{
name: "go-module",
language: Go,
},
{
name: "npm",
language: JavaScript,
},
{
name: "javascript",
language: JavaScript,
},
{
name: "pypi",
language: Python,
},
{
name: "python",
language: Python,
},
{
name: "gem",
language: Ruby,
},
{
name: "ruby",
language: Ruby,
},
{
name: "rust",
language: Rust,
},
{
name: "rust-crate",
language: Rust,
},
{
name: "cargo",
language: Rust,
},
{
name: "dart",
language: Dart,
},
{
name: "dart-pub",
language: Dart,
},
{
name: "pub",
language: Dart,
},
{
name: "dotnet",
language: Dotnet,
},
{
name: "unknown",
language: UnknownLanguage,
},
}
for _, test := range tests {
assert.Equal(t, LanguageByName(test.name), test.language)
}
}