github.com/oNaiPs/go-generate-fast@v0.3.0/src/plugins/go-bindata/go-bindata_test.go (about)

     1  package plugin_go_bindata
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  	"testing"
     7  
     8  	"github.com/oNaiPs/go-generate-fast/src/plugins"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestGobindataPluginName(t *testing.T) {
    13  	p := &GobindataPlugin{}
    14  
    15  	assert.Equal(t, "go-bindata", p.Name(), "They should be equal")
    16  }
    17  
    18  func TestGobindataPluginMatches(t *testing.T) {
    19  	p := &GobindataPlugin{}
    20  
    21  	t.Run("Match by executable", func(t *testing.T) {
    22  		opts := plugins.GenerateOpts{ExecutableName: "go-bindata"}
    23  
    24  		assert.True(t, p.Matches(opts))
    25  	})
    26  
    27  	t.Run("Match by package", func(t *testing.T) {
    28  		opts := plugins.GenerateOpts{GoPackage: "github.com/go-bindata/go-bindata/..."}
    29  
    30  		assert.True(t, p.Matches(opts))
    31  	})
    32  
    33  	t.Run("No match", func(t *testing.T) {
    34  		opts := plugins.GenerateOpts{ExecutableName: "not-bindata", GoPackage: "not-bindata"}
    35  
    36  		assert.False(t, p.Matches(opts))
    37  	})
    38  }
    39  
    40  func TestGobindataPluginComputeInputOutputFiles(t *testing.T) {
    41  	p := &GobindataPlugin{}
    42  	tmpDir := t.TempDir()
    43  
    44  	inputFile1 := filepath.Join(tmpDir, "input1")
    45  	err := os.WriteFile(inputFile1, []byte("dummy content"), 0600)
    46  	assert.NoError(t, err)
    47  
    48  	inputFile2 := filepath.Join(tmpDir, "input2")
    49  	err = os.WriteFile(inputFile2, []byte("dummy content"), 0600)
    50  	assert.NoError(t, err)
    51  
    52  	outputFile := filepath.Join(tmpDir, "output")
    53  
    54  	result := p.ComputeInputOutputFiles(plugins.GenerateOpts{
    55  		SanitizedArgs: []string{"-o", outputFile, inputFile1},
    56  	})
    57  
    58  	assert.Equal(t, []string{inputFile1}, result.InputFiles)
    59  	assert.Equal(t, []string{outputFile}, result.OutputFiles)
    60  
    61  	result = p.ComputeInputOutputFiles(plugins.GenerateOpts{
    62  		SanitizedArgs: []string{inputFile1},
    63  	})
    64  
    65  	assert.Equal(t, []string{inputFile1}, result.InputFiles)
    66  	assert.Equal(t, []string{"./bindata.go"}, result.OutputFiles)
    67  
    68  	result = p.ComputeInputOutputFiles(plugins.GenerateOpts{
    69  		SanitizedArgs: []string{tmpDir + "/..."},
    70  	})
    71  
    72  	assert.Equal(t, []string{inputFile1, inputFile2}, result.InputFiles)
    73  	assert.Equal(t, []string{"./bindata.go"}, result.OutputFiles)
    74  }