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  }