github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/gen/gen_test.go (about)

     1  package gen
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestGen(t *testing.T) {
    13  
    14  	assert := assert.New(t)
    15  
    16  	// make a temp dir and set up a demo project
    17  	tmpDir, err := ioutil.TempDir("", "TestGen")
    18  	if err != nil {
    19  		t.Fatal(err)
    20  	}
    21  	defer os.RemoveAll(tmpDir)
    22  	// log.Printf("tmpDir: %s", tmpDir)
    23  
    24  	// switch to tmpDir and when done, switch back
    25  	saveDir, err := os.Getwd()
    26  	if err != nil {
    27  		t.Fatal(err)
    28  	}
    29  	defer os.Chdir(saveDir)
    30  	os.Chdir(tmpDir)
    31  
    32  	os.Mkdir(filepath.Join(tmpDir, "src"), 0755)
    33  	os.Mkdir(filepath.Join(tmpDir, "src/demoproj"), 0755)
    34  
    35  	s := &Settings{
    36  		WorkDir: tmpDir,
    37  		GOPATH:  tmpDir,
    38  	}
    39  
    40  	assert.NoError(globalMapGenerator.Generate(s, "model-sample-todo-item", "src/demoproj/model-todo.go"))
    41  	assert.NoError(globalMapGenerator.Generate(s, "store", "-name", "DemoStore", "src/demoproj/store.go"))
    42  	bdata, err := ioutil.ReadFile(filepath.Join(s.GOPATH, "src/demoproj/store.go"))
    43  	assert.NoError(err)
    44  	assert.Contains(string(bdata), "DemoStore")
    45  	assert.NoError(globalMapGenerator.Generate(s, "store", "src/demoproj/store.go"))
    46  
    47  	packageName, err := DetectDirPackage(filepath.Join(tmpDir, "src/demoproj"))
    48  	assert.NoError(err)
    49  	assert.Equal("demoproj", packageName)
    50  
    51  }