github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/syft/license/license_test.go (about) 1 package license 2 3 import "testing" 4 5 func TestParseExpression(t *testing.T) { 6 tests := []struct { 7 name string 8 expression string 9 want string 10 wantErr bool 11 }{ 12 { 13 name: "valid single ID expression returns SPDX ID", 14 expression: "mit", 15 want: "MIT", 16 wantErr: false, 17 }, 18 { 19 name: "Valid SPDX expression returns SPDX expression", 20 expression: "MIT OR Apache-2.0", 21 want: "MIT OR Apache-2.0", 22 }, 23 { 24 name: "Invalid SPDX expression returns error", 25 expression: "MIT OR Apache-2.0 OR invalid", 26 want: "", 27 wantErr: true, 28 }, 29 } 30 for _, tt := range tests { 31 t.Run(tt.name, func(t *testing.T) { 32 got, err := ParseExpression(tt.expression) 33 if (err != nil) != tt.wantErr { 34 t.Errorf("ParseExpression() error = %v, wantErr %v", err, tt.wantErr) 35 return 36 } 37 if got != tt.want { 38 t.Errorf("ParseExpression() got = %v, want %v", got, tt.want) 39 } 40 }) 41 } 42 }