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 }