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  }