github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/cmd/internal/svc/codegen/db_test.go (about) 1 package codegen 2 3 import ( 4 "github.com/pkg/errors" 5 . "github.com/smartystreets/goconvey/convey" 6 "os" 7 "testing" 8 ) 9 10 func TestGenDbPanic(t *testing.T) { 11 Convey("GenDb should panic from MkdirAll", t, func() { 12 MkdirAll = os.MkdirAll 13 Open = os.Open 14 Create = os.Create 15 Stat = os.Stat 16 MkdirAll = func(path string, perm os.FileMode) error { 17 return errors.New("mock MkdirAll error") 18 } 19 dir := testDir + "db" 20 InitSvc(dir) 21 defer os.RemoveAll(dir) 22 So(func() { 23 GenDb(dir) 24 }, ShouldPanic) 25 }) 26 } 27 28 func TestGenDbPanic2(t *testing.T) { 29 Convey("GenDb should panic from Open", t, func() { 30 MkdirAll = os.MkdirAll 31 Open = os.Open 32 Create = os.Create 33 Stat = os.Stat 34 Open = func(name string) (*os.File, error) { 35 return nil, errors.New("mock Open error") 36 } 37 dir := testDir + "db" 38 InitSvc(dir) 39 defer os.RemoveAll(dir) 40 So(func() { 41 GenDb(dir) 42 }, ShouldPanic) 43 }) 44 } 45 46 func TestGenDbPanic3(t *testing.T) { 47 Convey("GenDb should panic from Create", t, func() { 48 MkdirAll = os.MkdirAll 49 Open = os.Open 50 Create = os.Create 51 Stat = os.Stat 52 Create = func(name string) (*os.File, error) { 53 return nil, errors.New("mock Create error") 54 } 55 dir := testDir + "db" 56 InitSvc(dir) 57 defer os.RemoveAll(dir) 58 So(func() { 59 GenDb(dir) 60 }, ShouldPanic) 61 }) 62 } 63 64 func TestGenDbWarn(t *testing.T) { 65 Convey("GenDb should warn", t, func() { 66 MkdirAll = os.MkdirAll 67 Open = os.Open 68 Create = os.Create 69 Stat = os.Stat 70 Stat = func(name string) (os.FileInfo, error) { 71 return nil, errors.New("mock Stat error") 72 } 73 dir := testDir + "db" 74 InitSvc(dir) 75 defer os.RemoveAll(dir) 76 So(func() { 77 GenDb(dir) 78 }, ShouldNotPanic) 79 }) 80 } 81 82 func TestGenDbPanic4(t *testing.T) { 83 Convey("GenDb should panic from dbTmpl", t, func() { 84 MkdirAll = os.MkdirAll 85 Open = os.Open 86 Create = os.Create 87 Stat = os.Stat 88 dbTmpl = `{{test tmpl}` 89 dir := testDir + "db" 90 InitSvc(dir) 91 defer os.RemoveAll(dir) 92 So(func() { 93 GenDb(dir) 94 }, ShouldPanic) 95 }) 96 }