github.com/kaisawind/go-swagger@v0.19.0/cmd/swagger/commands/generate/operation_test.go (about)

     1  package generate_test
     2  
     3  import (
     4  	"io/ioutil"
     5  	"log"
     6  	"os"
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  
    12  	"github.com/go-swagger/go-swagger/cmd/swagger/commands/generate"
    13  	flags "github.com/jessevdk/go-flags"
    14  )
    15  
    16  func TestGenerateOperation(t *testing.T) {
    17  	specs := []string{
    18  		"tasklist.basic.yml",
    19  	}
    20  	log.SetOutput(ioutil.Discard)
    21  	defer log.SetOutput(os.Stdout)
    22  
    23  	base := filepath.FromSlash("../../../../")
    24  	for i, spec := range specs {
    25  		_ = t.Run(spec, func(t *testing.T) {
    26  			path := filepath.Join(base, "fixtures/codegen", spec)
    27  			generated, err := ioutil.TempDir(filepath.Dir(path), "generated")
    28  			if err != nil {
    29  				t.Fatalf("TempDir()=%s", generated)
    30  			}
    31  			defer func() {
    32  				_ = os.RemoveAll(generated)
    33  			}()
    34  			m := &generate.Operation{}
    35  			if i == 0 {
    36  				m.CopyrightFile = flags.Filename(filepath.Join(base, "LICENSE"))
    37  			}
    38  			_, _ = flags.ParseArgs(m, []string{"--name=listTasks"})
    39  			m.Spec = flags.Filename(path)
    40  			m.Target = flags.Filename(generated)
    41  
    42  			if err := m.Execute([]string{}); err != nil {
    43  				t.Error(err)
    44  			}
    45  		})
    46  	}
    47  }
    48  
    49  func TestGenerateOperation_Check(t *testing.T) {
    50  	log.SetOutput(ioutil.Discard)
    51  	defer log.SetOutput(os.Stdout)
    52  
    53  	m := &generate.Operation{}
    54  	_, _ = flags.ParseArgs(m, []string{"--name=op1", "--name=op2"})
    55  	m.DumpData = true
    56  	m.Name = []string{"op1", "op2"}
    57  	err := m.Execute([]string{})
    58  	assert.Error(t, err)
    59  }