138 lines
3.6 KiB
Go
138 lines
3.6 KiB
Go
package gost
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/future-architect/vuls/models"
|
|
gostmodels "github.com/knqyf263/gost/models"
|
|
)
|
|
|
|
func TestUbuntu_Supported(t *testing.T) {
|
|
type args struct {
|
|
ubuReleaseVer string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{
|
|
name: "14.04 is supported",
|
|
args: args{
|
|
ubuReleaseVer: "1404",
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "16.04 is supported",
|
|
args: args{
|
|
ubuReleaseVer: "1604",
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "18.04 is supported",
|
|
args: args{
|
|
ubuReleaseVer: "1804",
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "20.04 is supported",
|
|
args: args{
|
|
ubuReleaseVer: "2004",
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "20.10 is supported",
|
|
args: args{
|
|
ubuReleaseVer: "2010",
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "21.04 is supported",
|
|
args: args{
|
|
ubuReleaseVer: "2104",
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "empty string is not supported yet",
|
|
args: args{
|
|
ubuReleaseVer: "",
|
|
},
|
|
want: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
ubu := Ubuntu{}
|
|
if got := ubu.supported(tt.args.ubuReleaseVer); got != tt.want {
|
|
t.Errorf("Ubuntu.Supported() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestUbuntuConvertToModel(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input gostmodels.UbuntuCVE
|
|
expected models.CveContent
|
|
}{
|
|
{
|
|
name: "gost Ubuntu.ConvertToModel",
|
|
input: gostmodels.UbuntuCVE{
|
|
Candidate: "CVE-2021-3517",
|
|
PublicDate: time.Date(2021, 5, 19, 14, 15, 0, 0, time.UTC),
|
|
References: []gostmodels.UbuntuReference{
|
|
{Reference: "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3517"},
|
|
{Reference: "https://gitlab.gnome.org/GNOME/libxml2/-/issues/235"},
|
|
{Reference: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/bf22713507fe1fc3a2c4b525cf0a88c2dc87a3a2"}},
|
|
Description: "description.",
|
|
Notes: []gostmodels.UbuntuNote{},
|
|
Bugs: []gostmodels.UbuntuBug{{Bug: "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987738"}},
|
|
Priority: "medium",
|
|
Patches: []gostmodels.UbuntuPatch{
|
|
{PackageName: "libxml2", ReleasePatches: []gostmodels.UbuntuReleasePatch{
|
|
{ReleaseName: "focal", Status: "needed", Note: ""},
|
|
}},
|
|
},
|
|
Upstreams: []gostmodels.UbuntuUpstream{{
|
|
PackageName: "libxml2", UpstreamLinks: []gostmodels.UbuntuUpstreamLink{
|
|
{Link: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2"},
|
|
},
|
|
}},
|
|
},
|
|
expected: models.CveContent{
|
|
Type: models.UbuntuAPI,
|
|
CveID: "CVE-2021-3517",
|
|
Summary: "description.",
|
|
Cvss2Severity: "medium",
|
|
Cvss3Severity: "medium",
|
|
SourceLink: "https://ubuntu.com/security/CVE-2021-3517",
|
|
References: []models.Reference{
|
|
{Source: "CVE", Link: "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3517"},
|
|
{Link: "https://gitlab.gnome.org/GNOME/libxml2/-/issues/235"},
|
|
{Link: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/bf22713507fe1fc3a2c4b525cf0a88c2dc87a3a2"},
|
|
{Source: "Bug", Link: "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987738"},
|
|
{Source: "UPSTREAM", Link: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2"}},
|
|
Published: time.Date(2021, 5, 19, 14, 15, 0, 0, time.UTC),
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
ubu := Ubuntu{}
|
|
got := ubu.ConvertToModel(&tt.input)
|
|
if !reflect.DeepEqual(got, &tt.expected) {
|
|
t.Errorf("Ubuntu.ConvertToModel() = %#v, want %#v", got, &tt.expected)
|
|
}
|
|
})
|
|
}
|
|
}
|