github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/analyzer/os/alpine/alpine_test.go (about) 1 package alpine 2 3 import ( 4 "context" 5 "strings" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 10 "github.com/devseccon/trivy/pkg/fanal/analyzer" 11 "github.com/devseccon/trivy/pkg/fanal/types" 12 ) 13 14 func TestAlpineReleaseOSAnalyzer_Required(t *testing.T) { 15 tests := []struct { 16 name string 17 input analyzer.AnalysisInput 18 wantResult *analyzer.AnalysisResult 19 wantError string 20 }{ 21 { 22 name: "happy path", 23 input: analyzer.AnalysisInput{ 24 FilePath: "/etc/alpine-release", 25 Content: strings.NewReader("3.15.4"), 26 }, 27 wantResult: &analyzer.AnalysisResult{ 28 OS: types.OS{ 29 Family: types.Alpine, 30 Name: "3.15.4", 31 }, 32 }, 33 }, 34 } 35 36 for _, test := range tests { 37 t.Run(test.name, func(t *testing.T) { 38 a := alpineOSAnalyzer{} 39 res, err := a.Analyze(context.Background(), test.input) 40 41 if test.wantError != "" { 42 assert.NotNil(t, err) 43 assert.Equal(t, test.wantError, err.Error()) 44 } else { 45 assert.Nil(t, err) 46 assert.Equal(t, test.wantResult, res) 47 } 48 }) 49 } 50 }