github.com/kaisawind/go-swagger@v0.19.0/cmd/swagger/commands/generate/server_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 TestGenerateServer(t *testing.T) {
    17  	specs := []string{
    18  		"billforward.discriminators.yml",
    19  		"todolist.simplequery.yml",
    20  	}
    21  	log.SetOutput(ioutil.Discard)
    22  	defer log.SetOutput(os.Stdout)
    23  
    24  	base := filepath.FromSlash("../../../../")
    25  	for i, spec := range specs {
    26  		_ = t.Run(spec, func(t *testing.T) {
    27  			path := filepath.Join(base, "fixtures/codegen", spec)
    28  			generated, err := ioutil.TempDir(filepath.Dir(path), "generated")
    29  			if err != nil {
    30  				t.Fatalf("TempDir()=%s", generated)
    31  			}
    32  			defer func() {
    33  				_ = os.RemoveAll(generated)
    34  			}()
    35  			m := &generate.Server{}
    36  			_, _ = flags.Parse(m)
    37  			if i == 0 {
    38  				m.CopyrightFile = flags.Filename(filepath.Join(base, "LICENSE"))
    39  			}
    40  			if i == 1 {
    41  				m.FlagStrategy = "pflag"
    42  			}
    43  			m.Spec = flags.Filename(path)
    44  			m.Target = flags.Filename(generated)
    45  
    46  			if err := m.Execute([]string{}); err != nil {
    47  				t.Error(err)
    48  			}
    49  		})
    50  	}
    51  }
    52  
    53  func TestGenerateServer_Checks(t *testing.T) {
    54  	log.SetOutput(ioutil.Discard)
    55  	defer log.SetOutput(os.Stdout)
    56  
    57  	m := &generate.Server{}
    58  	_, _ = flags.Parse(m)
    59  	m.CopyrightFile = "nowhere"
    60  	err := m.Execute([]string{})
    61  	assert.Error(t, err)
    62  }