diff --git a/commands/util_test.go b/commands/util_test.go index ddcde598..66bfa9f7 100644 --- a/commands/util_test.go +++ b/commands/util_test.go @@ -32,109 +32,105 @@ func TestDiff(t *testing.T) { atCurrent, _ := time.Parse("2006-01-02", "2014-12-31") atPrevious, _ := time.Parse("2006-01-02", "2014-11-31") var tests = []struct { - inCurrent models.ScanHistory - inPrevious models.ScanHistory + inCurrent models.ScanResults + inPrevious models.ScanResults out models.ScanResult }{ { - models.ScanHistory{ - ScanResults: models.ScanResults{ - { - ScannedAt: atCurrent, - ServerName: "u16", - Family: "ubuntu", - Release: "16.04", - ScannedCves: []models.VulnInfo{ - { - CveID: "CVE-2012-6702", - Packages: models.PackageInfoList{ - { - Name: "libexpat1", - Version: "2.1.0-7", - Release: "", - NewVersion: "2.1.0-7ubuntu0.16.04.2", - NewRelease: "", - Repository: "", - }, + models.ScanResults{ + { + ScannedAt: atCurrent, + ServerName: "u16", + Family: "ubuntu", + Release: "16.04", + ScannedCves: []models.VulnInfo{ + { + CveID: "CVE-2012-6702", + Packages: models.PackageInfoList{ + { + Name: "libexpat1", + Version: "2.1.0-7", + Release: "", + NewVersion: "2.1.0-7ubuntu0.16.04.2", + NewRelease: "", + Repository: "", }, - DistroAdvisories: []models.DistroAdvisory{}, - CpeNames: []string{}, - }, - { - CveID: "CVE-2014-9761", - Packages: models.PackageInfoList{ - { - Name: "libc-bin", - Version: "2.21-0ubuntu5", - Release: "", - NewVersion: "2.23-0ubuntu5", - NewRelease: "", - Repository: "", - }, - }, - DistroAdvisories: []models.DistroAdvisory{}, - CpeNames: []string{}, }, + DistroAdvisories: []models.DistroAdvisory{}, + CpeNames: []string{}, + }, + { + CveID: "CVE-2014-9761", + Packages: models.PackageInfoList{ + { + Name: "libc-bin", + Version: "2.21-0ubuntu5", + Release: "", + NewVersion: "2.23-0ubuntu5", + NewRelease: "", + Repository: "", + }, + }, + DistroAdvisories: []models.DistroAdvisory{}, + CpeNames: []string{}, }, - KnownCves: []models.CveInfo{}, - UnknownCves: []models.CveInfo{}, - IgnoredCves: []models.CveInfo{}, - - Packages: models.PackageInfoList{}, - - Errors: []string{}, - Optional: [][]interface{}{}, }, + KnownCves: []models.CveInfo{}, + UnknownCves: []models.CveInfo{}, + IgnoredCves: []models.CveInfo{}, + + Packages: models.PackageInfoList{}, + + Errors: []string{}, + Optional: [][]interface{}{}, }, }, - models.ScanHistory{ - ScanResults: models.ScanResults{ - { - ScannedAt: atPrevious, - ServerName: "u16", - Family: "ubuntu", - Release: "16.04", - ScannedCves: []models.VulnInfo{ - { - CveID: "CVE-2012-6702", - Packages: models.PackageInfoList{ - { - Name: "libexpat1", - Version: "2.1.0-7", - Release: "", - NewVersion: "2.1.0-7ubuntu0.16.04.2", - NewRelease: "", - Repository: "", - }, + models.ScanResults{ + { + ScannedAt: atPrevious, + ServerName: "u16", + Family: "ubuntu", + Release: "16.04", + ScannedCves: []models.VulnInfo{ + { + CveID: "CVE-2012-6702", + Packages: models.PackageInfoList{ + { + Name: "libexpat1", + Version: "2.1.0-7", + Release: "", + NewVersion: "2.1.0-7ubuntu0.16.04.2", + NewRelease: "", + Repository: "", }, - DistroAdvisories: []models.DistroAdvisory{}, - CpeNames: []string{}, - }, - { - CveID: "CVE-2014-9761", - Packages: models.PackageInfoList{ - { - Name: "libc-bin", - Version: "2.21-0ubuntu5", - Release: "", - NewVersion: "2.23-0ubuntu5", - NewRelease: "", - Repository: "", - }, - }, - DistroAdvisories: []models.DistroAdvisory{}, - CpeNames: []string{}, }, + DistroAdvisories: []models.DistroAdvisory{}, + CpeNames: []string{}, + }, + { + CveID: "CVE-2014-9761", + Packages: models.PackageInfoList{ + { + Name: "libc-bin", + Version: "2.21-0ubuntu5", + Release: "", + NewVersion: "2.23-0ubuntu5", + NewRelease: "", + Repository: "", + }, + }, + DistroAdvisories: []models.DistroAdvisory{}, + CpeNames: []string{}, }, - KnownCves: []models.CveInfo{}, - UnknownCves: []models.CveInfo{}, - IgnoredCves: []models.CveInfo{}, - - Packages: models.PackageInfoList{}, - - Errors: []string{}, - Optional: [][]interface{}{}, }, + KnownCves: []models.CveInfo{}, + UnknownCves: []models.CveInfo{}, + IgnoredCves: []models.CveInfo{}, + + Packages: models.PackageInfoList{}, + + Errors: []string{}, + Optional: [][]interface{}{}, }, }, models.ScanResult{ @@ -153,88 +149,84 @@ func TestDiff(t *testing.T) { }, }, { - models.ScanHistory{ - ScanResults: models.ScanResults{ - { - ScannedAt: atCurrent, - ServerName: "u16", - Family: "ubuntu", - Release: "16.04", - ScannedCves: []models.VulnInfo{ - { - CveID: "CVE-2016-6662", - Packages: models.PackageInfoList{ - { - Name: "mysql-libs", - Version: "5.1.73", - Release: "7.el6", - NewVersion: "5.1.73", - NewRelease: "8.el6_8", - Repository: "", - }, - }, - DistroAdvisories: []models.DistroAdvisory{}, - CpeNames: []string{}, - }, - }, - KnownCves: []models.CveInfo{ - { - CveDetail: cve.CveDetail{ - CveID: "CVE-2016-6662", - Nvd: cve.Nvd{ - LastModifiedDate: time.Date(2016, 1, 1, 0, 0, 0, 0, time.Local), - }, - }, - VulnInfo: models.VulnInfo{ - CveID: "CVE-2016-6662", + models.ScanResults{ + { + ScannedAt: atCurrent, + ServerName: "u16", + Family: "ubuntu", + Release: "16.04", + ScannedCves: []models.VulnInfo{ + { + CveID: "CVE-2016-6662", + Packages: models.PackageInfoList{ + { + Name: "mysql-libs", + Version: "5.1.73", + Release: "7.el6", + NewVersion: "5.1.73", + NewRelease: "8.el6_8", + Repository: "", }, }, + DistroAdvisories: []models.DistroAdvisory{}, + CpeNames: []string{}, }, - UnknownCves: []models.CveInfo{}, - IgnoredCves: []models.CveInfo{}, }, + KnownCves: []models.CveInfo{ + { + CveDetail: cve.CveDetail{ + CveID: "CVE-2016-6662", + Nvd: cve.Nvd{ + LastModifiedDate: time.Date(2016, 1, 1, 0, 0, 0, 0, time.Local), + }, + }, + VulnInfo: models.VulnInfo{ + CveID: "CVE-2016-6662", + }, + }, + }, + UnknownCves: []models.CveInfo{}, + IgnoredCves: []models.CveInfo{}, }, }, - models.ScanHistory{ - ScanResults: models.ScanResults{ - { - ScannedAt: atPrevious, - ServerName: "u16", - Family: "ubuntu", - Release: "16.04", - ScannedCves: []models.VulnInfo{ - { - CveID: "CVE-2016-6662", - Packages: models.PackageInfoList{ - { - Name: "mysql-libs", - Version: "5.1.73", - Release: "7.el6", - NewVersion: "5.1.73", - NewRelease: "8.el6_8", - Repository: "", - }, - }, - DistroAdvisories: []models.DistroAdvisory{}, - CpeNames: []string{}, - }, - }, - KnownCves: []models.CveInfo{ - { - CveDetail: cve.CveDetail{ - CveID: "CVE-2016-6662", - Nvd: cve.Nvd{ - LastModifiedDate: time.Date(2017, 3, 15, 13, 40, 57, 0, time.Local), - }, - }, - VulnInfo: models.VulnInfo{ - CveID: "CVE-2016-6662", + models.ScanResults{ + { + ScannedAt: atPrevious, + ServerName: "u16", + Family: "ubuntu", + Release: "16.04", + ScannedCves: []models.VulnInfo{ + { + CveID: "CVE-2016-6662", + Packages: models.PackageInfoList{ + { + Name: "mysql-libs", + Version: "5.1.73", + Release: "7.el6", + NewVersion: "5.1.73", + NewRelease: "8.el6_8", + Repository: "", }, }, + DistroAdvisories: []models.DistroAdvisory{}, + CpeNames: []string{}, }, - UnknownCves: []models.CveInfo{}, - IgnoredCves: []models.CveInfo{}, }, + KnownCves: []models.CveInfo{ + { + CveDetail: cve.CveDetail{ + CveID: "CVE-2016-6662", + Nvd: cve.Nvd{ + LastModifiedDate: time.Date(2017, 3, 15, 13, 40, 57, 0, time.Local), + }, + }, + VulnInfo: models.VulnInfo{ + CveID: "CVE-2016-6662", + }, + }, + }, + UnknownCves: []models.CveInfo{}, + IgnoredCves: []models.CveInfo{}, }, }, models.ScanResult{ @@ -280,10 +272,9 @@ func TestDiff(t *testing.T) { }, } - var s models.ScanHistory for _, tt := range tests { - s, _ = diff(tt.inCurrent, tt.inPrevious) - for _, actual := range s.ScanResults { + diff, _ := diff(tt.inCurrent, tt.inPrevious) + for _, actual := range diff { if !reflect.DeepEqual(actual, tt.out) { h := pp.Sprint(actual) x := pp.Sprint(tt.out)