github.com/go-generalize/volcago@v1.7.0/generator/emulator_test.go (about) 1 //go:build emulator 2 // +build emulator 3 4 package generator 5 6 import ( 7 "os" 8 "os/exec" 9 "path/filepath" 10 "testing" 11 ) 12 13 func execTest(t *testing.T) { 14 t.Helper() 15 16 b, err := exec.Command("go", "test", "./tests", "-v", "-tags", "internal").CombinedOutput() 17 18 if err != nil { 19 t.Fatalf("go test failed: %+v(%s)", err, string(b)) 20 } 21 } 22 23 func run(t *testing.T, structName string, subCollection bool) { 24 t.Helper() 25 26 gen, err := NewGenerator(".") 27 28 if err != nil { 29 t.Fatalf("NewGenerator failed: %+v", err) 30 } 31 32 opt := NewDefaultGenerateOption() 33 opt.Subcollection = subCollection 34 35 if err := gen.Generate(structName, opt); err != nil { 36 t.Fatalf("Generate failed: %+v", err) 37 } 38 } 39 40 func TestGenerator(t *testing.T) { 41 root, err := os.Getwd() 42 43 if err != nil { 44 t.Fatalf("failed to getwd: %+v", err) 45 } 46 47 t.Run("AutomaticIDGeneration", func(tr *testing.T) { 48 if err := os.Chdir(filepath.Join(root, "testfiles/auto")); err != nil { 49 tr.Fatalf("chdir failed: %+v", err) 50 } 51 52 run(t, "Task", false) 53 run(t, "Lock", false) 54 55 execTest(tr) 56 }) 57 58 t.Run("IDSpecified", func(tr *testing.T) { 59 if err := os.Chdir(filepath.Join(root, "testfiles/not_auto")); err != nil { 60 tr.Fatalf("chdir failed: %+v", err) 61 } 62 63 run(t, "Task", false) 64 65 run(t, "SubTask", true) 66 67 execTest(tr) 68 }) 69 }