1*ba677afaSXin Li// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2*ba677afaSXin Li 3*ba677afaSXin Lipackage reporter 4*ba677afaSXin Li 5*ba677afaSXin Liimport ( 6*ba677afaSXin Li "bytes" 7*ba677afaSXin Li "testing" 8*ba677afaSXin Li 9*ba677afaSXin Li "github.com/spdx/tools-golang/spdx/v2_1" 10*ba677afaSXin Li "github.com/spdx/tools-golang/spdx/v2_2" 11*ba677afaSXin Li "github.com/spdx/tools-golang/spdx/v2_3" 12*ba677afaSXin Li) 13*ba677afaSXin Li 14*ba677afaSXin Li// ===== 2.1 Reporter top-level function tests ===== 15*ba677afaSXin Lifunc Test2_1ReporterCanMakeReportFromPackage(t *testing.T) { 16*ba677afaSXin Li pkg := &v2_1.Package{ 17*ba677afaSXin Li FilesAnalyzed: true, 18*ba677afaSXin Li Files: []*v2_1.File{ 19*ba677afaSXin Li {FileSPDXIdentifier: "File0", LicenseConcluded: "MIT"}, 20*ba677afaSXin Li {FileSPDXIdentifier: "File1", LicenseConcluded: "NOASSERTION"}, 21*ba677afaSXin Li {FileSPDXIdentifier: "File2", LicenseConcluded: "MIT"}, 22*ba677afaSXin Li {FileSPDXIdentifier: "File3", LicenseConcluded: "MIT"}, 23*ba677afaSXin Li {FileSPDXIdentifier: "File4", LicenseConcluded: "GPL-2.0-only"}, 24*ba677afaSXin Li {FileSPDXIdentifier: "File5", LicenseConcluded: "NOASSERTION"}, 25*ba677afaSXin Li {FileSPDXIdentifier: "File6", LicenseConcluded: "GPL-2.0-only"}, 26*ba677afaSXin Li {FileSPDXIdentifier: "File7", LicenseConcluded: "GPL-2.0-only"}, 27*ba677afaSXin Li {FileSPDXIdentifier: "File8", LicenseConcluded: "MIT"}, 28*ba677afaSXin Li {FileSPDXIdentifier: "File9", LicenseConcluded: "GPL-2.0-only"}, 29*ba677afaSXin Li {FileSPDXIdentifier: "File10", LicenseConcluded: "GPL-2.0-only"}, 30*ba677afaSXin Li {FileSPDXIdentifier: "File11", LicenseConcluded: "NOASSERTION"}, 31*ba677afaSXin Li }, 32*ba677afaSXin Li } 33*ba677afaSXin Li 34*ba677afaSXin Li // what we want to get, as a buffer of bytes 35*ba677afaSXin Li want := bytes.NewBufferString(` 9 License found 36*ba677afaSXin Li 3 License not found 37*ba677afaSXin Li 12 TOTAL 38*ba677afaSXin Li 39*ba677afaSXin Li 5 GPL-2.0-only 40*ba677afaSXin Li 4 MIT 41*ba677afaSXin Li 9 TOTAL FOUND 42*ba677afaSXin Li`) 43*ba677afaSXin Li 44*ba677afaSXin Li // render as buffer of bytes 45*ba677afaSXin Li var got bytes.Buffer 46*ba677afaSXin Li err := Generate2_1(pkg, &got) 47*ba677afaSXin Li if err != nil { 48*ba677afaSXin Li t.Errorf("Expected nil error, got %v", err) 49*ba677afaSXin Li } 50*ba677afaSXin Li 51*ba677afaSXin Li // check that they match 52*ba677afaSXin Li c := bytes.Compare(want.Bytes(), got.Bytes()) 53*ba677afaSXin Li if c != 0 { 54*ba677afaSXin Li t.Errorf("Expected %v, got %v", want.String(), got.String()) 55*ba677afaSXin Li } 56*ba677afaSXin Li} 57*ba677afaSXin Li 58*ba677afaSXin Lifunc Test2_1ReporterReturnsErrorIfPackageFilesNotAnalyzed(t *testing.T) { 59*ba677afaSXin Li pkg := &v2_1.Package{ 60*ba677afaSXin Li FilesAnalyzed: false, 61*ba677afaSXin Li } 62*ba677afaSXin Li 63*ba677afaSXin Li // render as buffer of bytes 64*ba677afaSXin Li var got bytes.Buffer 65*ba677afaSXin Li err := Generate2_1(pkg, &got) 66*ba677afaSXin Li if err == nil { 67*ba677afaSXin Li t.Errorf("Expected non-nil error, got nil") 68*ba677afaSXin Li } 69*ba677afaSXin Li} 70*ba677afaSXin Li 71*ba677afaSXin Li// ===== 2.1 Utility functions ===== 72*ba677afaSXin Li 73*ba677afaSXin Lifunc Test2_1CanGetCountsOfLicenses(t *testing.T) { 74*ba677afaSXin Li pkg := &v2_1.Package{ 75*ba677afaSXin Li FilesAnalyzed: true, 76*ba677afaSXin Li Files: []*v2_1.File{ 77*ba677afaSXin Li {FileSPDXIdentifier: "File0", LicenseConcluded: "MIT"}, 78*ba677afaSXin Li {FileSPDXIdentifier: "File1", LicenseConcluded: "NOASSERTION"}, 79*ba677afaSXin Li {FileSPDXIdentifier: "File2", LicenseConcluded: "MIT"}, 80*ba677afaSXin Li {FileSPDXIdentifier: "File3", LicenseConcluded: "MIT"}, 81*ba677afaSXin Li {FileSPDXIdentifier: "File4", LicenseConcluded: "GPL-2.0-only"}, 82*ba677afaSXin Li {FileSPDXIdentifier: "File5", LicenseConcluded: "NOASSERTION"}, 83*ba677afaSXin Li {FileSPDXIdentifier: "File6", LicenseConcluded: "GPL-2.0-only"}, 84*ba677afaSXin Li {FileSPDXIdentifier: "File7", LicenseConcluded: "GPL-2.0-only"}, 85*ba677afaSXin Li {FileSPDXIdentifier: "File8", LicenseConcluded: "MIT"}, 86*ba677afaSXin Li {FileSPDXIdentifier: "File9", LicenseConcluded: "GPL-2.0-only"}, 87*ba677afaSXin Li {FileSPDXIdentifier: "File10", LicenseConcluded: "GPL-2.0-only"}, 88*ba677afaSXin Li {FileSPDXIdentifier: "File11", LicenseConcluded: "NOASSERTION"}, 89*ba677afaSXin Li }, 90*ba677afaSXin Li } 91*ba677afaSXin Li 92*ba677afaSXin Li totalFound, totalNotFound, foundCounts := countLicenses2_1(pkg) 93*ba677afaSXin Li if totalFound != 9 { 94*ba677afaSXin Li t.Errorf("expected %v, got %v", 9, totalFound) 95*ba677afaSXin Li } 96*ba677afaSXin Li if totalNotFound != 3 { 97*ba677afaSXin Li t.Errorf("expected %v, got %v", 3, totalNotFound) 98*ba677afaSXin Li } 99*ba677afaSXin Li if len(foundCounts) != 2 { 100*ba677afaSXin Li t.Fatalf("expected %v, got %v", 2, len(foundCounts)) 101*ba677afaSXin Li } 102*ba677afaSXin Li 103*ba677afaSXin Li // foundCounts is a map of license ID to count of licenses 104*ba677afaSXin Li // confirm that the results are as expected 105*ba677afaSXin Li if foundCounts["GPL-2.0-only"] != 5 { 106*ba677afaSXin Li t.Errorf("expected %v, got %v", 5, foundCounts["GPL-2.0-only"]) 107*ba677afaSXin Li } 108*ba677afaSXin Li if foundCounts["MIT"] != 4 { 109*ba677afaSXin Li t.Errorf("expected %v, got %v", 4, foundCounts["MIT"]) 110*ba677afaSXin Li } 111*ba677afaSXin Li} 112*ba677afaSXin Li 113*ba677afaSXin Lifunc Test2_1NilPackageReturnsZeroCountsOfLicenses(t *testing.T) { 114*ba677afaSXin Li totalFound, totalNotFound, foundCounts := countLicenses2_1(nil) 115*ba677afaSXin Li if totalFound != 0 { 116*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalFound) 117*ba677afaSXin Li } 118*ba677afaSXin Li if totalNotFound != 0 { 119*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalNotFound) 120*ba677afaSXin Li } 121*ba677afaSXin Li if len(foundCounts) != 0 { 122*ba677afaSXin Li t.Fatalf("expected %v, got %v", 0, len(foundCounts)) 123*ba677afaSXin Li } 124*ba677afaSXin Li 125*ba677afaSXin Li pkg := &v2_1.Package{} 126*ba677afaSXin Li totalFound, totalNotFound, foundCounts = countLicenses2_1(pkg) 127*ba677afaSXin Li if totalFound != 0 { 128*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalFound) 129*ba677afaSXin Li } 130*ba677afaSXin Li if totalNotFound != 0 { 131*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalNotFound) 132*ba677afaSXin Li } 133*ba677afaSXin Li if len(foundCounts) != 0 { 134*ba677afaSXin Li t.Fatalf("expected %v, got %v", 0, len(foundCounts)) 135*ba677afaSXin Li } 136*ba677afaSXin Li} 137*ba677afaSXin Li 138*ba677afaSXin Li// ===== 2.2 Reporter top-level function tests ===== 139*ba677afaSXin Lifunc Test2_2ReporterCanMakeReportFromPackage(t *testing.T) { 140*ba677afaSXin Li pkg := &v2_2.Package{ 141*ba677afaSXin Li FilesAnalyzed: true, 142*ba677afaSXin Li Files: []*v2_2.File{ 143*ba677afaSXin Li {FileSPDXIdentifier: "File0", LicenseConcluded: "MIT"}, 144*ba677afaSXin Li {FileSPDXIdentifier: "File1", LicenseConcluded: "NOASSERTION"}, 145*ba677afaSXin Li {FileSPDXIdentifier: "File2", LicenseConcluded: "MIT"}, 146*ba677afaSXin Li {FileSPDXIdentifier: "File3", LicenseConcluded: "MIT"}, 147*ba677afaSXin Li {FileSPDXIdentifier: "File4", LicenseConcluded: "GPL-2.0-only"}, 148*ba677afaSXin Li {FileSPDXIdentifier: "File5", LicenseConcluded: "NOASSERTION"}, 149*ba677afaSXin Li {FileSPDXIdentifier: "File6", LicenseConcluded: "GPL-2.0-only"}, 150*ba677afaSXin Li {FileSPDXIdentifier: "File7", LicenseConcluded: "GPL-2.0-only"}, 151*ba677afaSXin Li {FileSPDXIdentifier: "File8", LicenseConcluded: "MIT"}, 152*ba677afaSXin Li {FileSPDXIdentifier: "File9", LicenseConcluded: "GPL-2.0-only"}, 153*ba677afaSXin Li {FileSPDXIdentifier: "File10", LicenseConcluded: "GPL-2.0-only"}, 154*ba677afaSXin Li {FileSPDXIdentifier: "File11", LicenseConcluded: "NOASSERTION"}, 155*ba677afaSXin Li }, 156*ba677afaSXin Li } 157*ba677afaSXin Li 158*ba677afaSXin Li // what we want to get, as a buffer of bytes 159*ba677afaSXin Li want := bytes.NewBufferString(` 9 License found 160*ba677afaSXin Li 3 License not found 161*ba677afaSXin Li 12 TOTAL 162*ba677afaSXin Li 163*ba677afaSXin Li 5 GPL-2.0-only 164*ba677afaSXin Li 4 MIT 165*ba677afaSXin Li 9 TOTAL FOUND 166*ba677afaSXin Li`) 167*ba677afaSXin Li 168*ba677afaSXin Li // render as buffer of bytes 169*ba677afaSXin Li var got bytes.Buffer 170*ba677afaSXin Li err := Generate2_2(pkg, &got) 171*ba677afaSXin Li if err != nil { 172*ba677afaSXin Li t.Errorf("Expected nil error, got %v", err) 173*ba677afaSXin Li } 174*ba677afaSXin Li 175*ba677afaSXin Li // check that they match 176*ba677afaSXin Li c := bytes.Compare(want.Bytes(), got.Bytes()) 177*ba677afaSXin Li if c != 0 { 178*ba677afaSXin Li t.Errorf("Expected %v, got %v", want.String(), got.String()) 179*ba677afaSXin Li } 180*ba677afaSXin Li} 181*ba677afaSXin Li 182*ba677afaSXin Lifunc Test2_2ReporterReturnsErrorIfPackageFilesNotAnalyzed(t *testing.T) { 183*ba677afaSXin Li pkg := &v2_2.Package{ 184*ba677afaSXin Li FilesAnalyzed: false, 185*ba677afaSXin Li } 186*ba677afaSXin Li 187*ba677afaSXin Li // render as buffer of bytes 188*ba677afaSXin Li var got bytes.Buffer 189*ba677afaSXin Li err := Generate2_2(pkg, &got) 190*ba677afaSXin Li if err == nil { 191*ba677afaSXin Li t.Errorf("Expected non-nil error, got nil") 192*ba677afaSXin Li } 193*ba677afaSXin Li} 194*ba677afaSXin Li 195*ba677afaSXin Li// ===== 2.2 Utility functions ===== 196*ba677afaSXin Li 197*ba677afaSXin Lifunc Test2_2CanGetCountsOfLicenses(t *testing.T) { 198*ba677afaSXin Li pkg := &v2_2.Package{ 199*ba677afaSXin Li FilesAnalyzed: true, 200*ba677afaSXin Li Files: []*v2_2.File{ 201*ba677afaSXin Li {FileSPDXIdentifier: "File0", LicenseConcluded: "MIT"}, 202*ba677afaSXin Li {FileSPDXIdentifier: "File1", LicenseConcluded: "NOASSERTION"}, 203*ba677afaSXin Li {FileSPDXIdentifier: "File2", LicenseConcluded: "MIT"}, 204*ba677afaSXin Li {FileSPDXIdentifier: "File3", LicenseConcluded: "MIT"}, 205*ba677afaSXin Li {FileSPDXIdentifier: "File4", LicenseConcluded: "GPL-2.0-only"}, 206*ba677afaSXin Li {FileSPDXIdentifier: "File5", LicenseConcluded: "NOASSERTION"}, 207*ba677afaSXin Li {FileSPDXIdentifier: "File6", LicenseConcluded: "GPL-2.0-only"}, 208*ba677afaSXin Li {FileSPDXIdentifier: "File7", LicenseConcluded: "GPL-2.0-only"}, 209*ba677afaSXin Li {FileSPDXIdentifier: "File8", LicenseConcluded: "MIT"}, 210*ba677afaSXin Li {FileSPDXIdentifier: "File9", LicenseConcluded: "GPL-2.0-only"}, 211*ba677afaSXin Li {FileSPDXIdentifier: "File10", LicenseConcluded: "GPL-2.0-only"}, 212*ba677afaSXin Li {FileSPDXIdentifier: "File11", LicenseConcluded: "NOASSERTION"}, 213*ba677afaSXin Li }, 214*ba677afaSXin Li } 215*ba677afaSXin Li 216*ba677afaSXin Li totalFound, totalNotFound, foundCounts := countLicenses2_2(pkg) 217*ba677afaSXin Li if totalFound != 9 { 218*ba677afaSXin Li t.Errorf("expected %v, got %v", 9, totalFound) 219*ba677afaSXin Li } 220*ba677afaSXin Li if totalNotFound != 3 { 221*ba677afaSXin Li t.Errorf("expected %v, got %v", 3, totalNotFound) 222*ba677afaSXin Li } 223*ba677afaSXin Li if len(foundCounts) != 2 { 224*ba677afaSXin Li t.Fatalf("expected %v, got %v", 2, len(foundCounts)) 225*ba677afaSXin Li } 226*ba677afaSXin Li 227*ba677afaSXin Li // foundCounts is a map of license ID to count of licenses 228*ba677afaSXin Li // confirm that the results are as expected 229*ba677afaSXin Li if foundCounts["GPL-2.0-only"] != 5 { 230*ba677afaSXin Li t.Errorf("expected %v, got %v", 5, foundCounts["GPL-2.0-only"]) 231*ba677afaSXin Li } 232*ba677afaSXin Li if foundCounts["MIT"] != 4 { 233*ba677afaSXin Li t.Errorf("expected %v, got %v", 4, foundCounts["MIT"]) 234*ba677afaSXin Li } 235*ba677afaSXin Li} 236*ba677afaSXin Li 237*ba677afaSXin Lifunc Test2_2NilPackageReturnsZeroCountsOfLicenses(t *testing.T) { 238*ba677afaSXin Li totalFound, totalNotFound, foundCounts := countLicenses2_2(nil) 239*ba677afaSXin Li if totalFound != 0 { 240*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalFound) 241*ba677afaSXin Li } 242*ba677afaSXin Li if totalNotFound != 0 { 243*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalNotFound) 244*ba677afaSXin Li } 245*ba677afaSXin Li if len(foundCounts) != 0 { 246*ba677afaSXin Li t.Fatalf("expected %v, got %v", 0, len(foundCounts)) 247*ba677afaSXin Li } 248*ba677afaSXin Li 249*ba677afaSXin Li pkg := &v2_2.Package{} 250*ba677afaSXin Li totalFound, totalNotFound, foundCounts = countLicenses2_2(pkg) 251*ba677afaSXin Li if totalFound != 0 { 252*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalFound) 253*ba677afaSXin Li } 254*ba677afaSXin Li if totalNotFound != 0 { 255*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalNotFound) 256*ba677afaSXin Li } 257*ba677afaSXin Li if len(foundCounts) != 0 { 258*ba677afaSXin Li t.Fatalf("expected %v, got %v", 0, len(foundCounts)) 259*ba677afaSXin Li } 260*ba677afaSXin Li} 261*ba677afaSXin Li 262*ba677afaSXin Li// ===== 2.3 Reporter top-level function tests ===== 263*ba677afaSXin Lifunc Test2_3ReporterCanMakeReportFromPackage(t *testing.T) { 264*ba677afaSXin Li pkg := &v2_3.Package{ 265*ba677afaSXin Li FilesAnalyzed: true, 266*ba677afaSXin Li Files: []*v2_3.File{ 267*ba677afaSXin Li {FileSPDXIdentifier: "File0", LicenseConcluded: "MIT"}, 268*ba677afaSXin Li {FileSPDXIdentifier: "File1", LicenseConcluded: "NOASSERTION"}, 269*ba677afaSXin Li {FileSPDXIdentifier: "File2", LicenseConcluded: "MIT"}, 270*ba677afaSXin Li {FileSPDXIdentifier: "File3", LicenseConcluded: "MIT"}, 271*ba677afaSXin Li {FileSPDXIdentifier: "File4", LicenseConcluded: "GPL-2.0-only"}, 272*ba677afaSXin Li {FileSPDXIdentifier: "File5", LicenseConcluded: "NOASSERTION"}, 273*ba677afaSXin Li {FileSPDXIdentifier: "File6", LicenseConcluded: "GPL-2.0-only"}, 274*ba677afaSXin Li {FileSPDXIdentifier: "File7", LicenseConcluded: "GPL-2.0-only"}, 275*ba677afaSXin Li {FileSPDXIdentifier: "File8", LicenseConcluded: "MIT"}, 276*ba677afaSXin Li {FileSPDXIdentifier: "File9", LicenseConcluded: "GPL-2.0-only"}, 277*ba677afaSXin Li {FileSPDXIdentifier: "File10", LicenseConcluded: "GPL-2.0-only"}, 278*ba677afaSXin Li {FileSPDXIdentifier: "File11", LicenseConcluded: "NOASSERTION"}, 279*ba677afaSXin Li }, 280*ba677afaSXin Li } 281*ba677afaSXin Li 282*ba677afaSXin Li // what we want to get, as a buffer of bytes 283*ba677afaSXin Li want := bytes.NewBufferString(` 9 License found 284*ba677afaSXin Li 3 License not found 285*ba677afaSXin Li 12 TOTAL 286*ba677afaSXin Li 287*ba677afaSXin Li 5 GPL-2.0-only 288*ba677afaSXin Li 4 MIT 289*ba677afaSXin Li 9 TOTAL FOUND 290*ba677afaSXin Li`) 291*ba677afaSXin Li 292*ba677afaSXin Li // render as buffer of bytes 293*ba677afaSXin Li var got bytes.Buffer 294*ba677afaSXin Li err := Generate2_3(pkg, &got) 295*ba677afaSXin Li if err != nil { 296*ba677afaSXin Li t.Errorf("Expected nil error, got %v", err) 297*ba677afaSXin Li } 298*ba677afaSXin Li 299*ba677afaSXin Li // check that they match 300*ba677afaSXin Li c := bytes.Compare(want.Bytes(), got.Bytes()) 301*ba677afaSXin Li if c != 0 { 302*ba677afaSXin Li t.Errorf("Expected %v, got %v", want.String(), got.String()) 303*ba677afaSXin Li } 304*ba677afaSXin Li} 305*ba677afaSXin Li 306*ba677afaSXin Lifunc Test2_3ReporterReturnsErrorIfPackageFilesNotAnalyzed(t *testing.T) { 307*ba677afaSXin Li pkg := &v2_3.Package{ 308*ba677afaSXin Li FilesAnalyzed: false, 309*ba677afaSXin Li } 310*ba677afaSXin Li 311*ba677afaSXin Li // render as buffer of bytes 312*ba677afaSXin Li var got bytes.Buffer 313*ba677afaSXin Li err := Generate2_3(pkg, &got) 314*ba677afaSXin Li if err == nil { 315*ba677afaSXin Li t.Errorf("Expected non-nil error, got nil") 316*ba677afaSXin Li } 317*ba677afaSXin Li} 318*ba677afaSXin Li 319*ba677afaSXin Li// ===== 2.3 Utility functions ===== 320*ba677afaSXin Li 321*ba677afaSXin Lifunc Test2_3CanGetCountsOfLicenses(t *testing.T) { 322*ba677afaSXin Li pkg := &v2_3.Package{ 323*ba677afaSXin Li FilesAnalyzed: true, 324*ba677afaSXin Li Files: []*v2_3.File{ 325*ba677afaSXin Li {FileSPDXIdentifier: "File0", LicenseConcluded: "MIT"}, 326*ba677afaSXin Li {FileSPDXIdentifier: "File1", LicenseConcluded: "NOASSERTION"}, 327*ba677afaSXin Li {FileSPDXIdentifier: "File2", LicenseConcluded: "MIT"}, 328*ba677afaSXin Li {FileSPDXIdentifier: "File3", LicenseConcluded: "MIT"}, 329*ba677afaSXin Li {FileSPDXIdentifier: "File4", LicenseConcluded: "GPL-2.0-only"}, 330*ba677afaSXin Li {FileSPDXIdentifier: "File5", LicenseConcluded: "NOASSERTION"}, 331*ba677afaSXin Li {FileSPDXIdentifier: "File6", LicenseConcluded: "GPL-2.0-only"}, 332*ba677afaSXin Li {FileSPDXIdentifier: "File7", LicenseConcluded: "GPL-2.0-only"}, 333*ba677afaSXin Li {FileSPDXIdentifier: "File8", LicenseConcluded: "MIT"}, 334*ba677afaSXin Li {FileSPDXIdentifier: "File9", LicenseConcluded: "GPL-2.0-only"}, 335*ba677afaSXin Li {FileSPDXIdentifier: "File10", LicenseConcluded: "GPL-2.0-only"}, 336*ba677afaSXin Li {FileSPDXIdentifier: "File11", LicenseConcluded: "NOASSERTION"}, 337*ba677afaSXin Li }, 338*ba677afaSXin Li } 339*ba677afaSXin Li 340*ba677afaSXin Li totalFound, totalNotFound, foundCounts := countLicenses2_3(pkg) 341*ba677afaSXin Li if totalFound != 9 { 342*ba677afaSXin Li t.Errorf("expected %v, got %v", 9, totalFound) 343*ba677afaSXin Li } 344*ba677afaSXin Li if totalNotFound != 3 { 345*ba677afaSXin Li t.Errorf("expected %v, got %v", 3, totalNotFound) 346*ba677afaSXin Li } 347*ba677afaSXin Li if len(foundCounts) != 2 { 348*ba677afaSXin Li t.Fatalf("expected %v, got %v", 2, len(foundCounts)) 349*ba677afaSXin Li } 350*ba677afaSXin Li 351*ba677afaSXin Li // foundCounts is a map of license ID to count of licenses 352*ba677afaSXin Li // confirm that the results are as expected 353*ba677afaSXin Li if foundCounts["GPL-2.0-only"] != 5 { 354*ba677afaSXin Li t.Errorf("expected %v, got %v", 5, foundCounts["GPL-2.0-only"]) 355*ba677afaSXin Li } 356*ba677afaSXin Li if foundCounts["MIT"] != 4 { 357*ba677afaSXin Li t.Errorf("expected %v, got %v", 4, foundCounts["MIT"]) 358*ba677afaSXin Li } 359*ba677afaSXin Li} 360*ba677afaSXin Li 361*ba677afaSXin Lifunc Test2_3NilPackageReturnsZeroCountsOfLicenses(t *testing.T) { 362*ba677afaSXin Li totalFound, totalNotFound, foundCounts := countLicenses2_3(nil) 363*ba677afaSXin Li if totalFound != 0 { 364*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalFound) 365*ba677afaSXin Li } 366*ba677afaSXin Li if totalNotFound != 0 { 367*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalNotFound) 368*ba677afaSXin Li } 369*ba677afaSXin Li if len(foundCounts) != 0 { 370*ba677afaSXin Li t.Fatalf("expected %v, got %v", 0, len(foundCounts)) 371*ba677afaSXin Li } 372*ba677afaSXin Li 373*ba677afaSXin Li pkg := &v2_3.Package{} 374*ba677afaSXin Li totalFound, totalNotFound, foundCounts = countLicenses2_3(pkg) 375*ba677afaSXin Li if totalFound != 0 { 376*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalFound) 377*ba677afaSXin Li } 378*ba677afaSXin Li if totalNotFound != 0 { 379*ba677afaSXin Li t.Errorf("expected %v, got %v", 0, totalNotFound) 380*ba677afaSXin Li } 381*ba677afaSXin Li if len(foundCounts) != 0 { 382*ba677afaSXin Li t.Fatalf("expected %v, got %v", 0, len(foundCounts)) 383*ba677afaSXin Li } 384*ba677afaSXin Li} 385