github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/04_database/demo2_mysql/op_test.go (about) 1 package demo2_mysql 2 3 import ( 4 "bytes" 5 "os" 6 "strconv" 7 "testing" 8 "text/template" 9 ) 10 11 func TestOpen(t *testing.T) { 12 open() 13 } 14 15 func TestInsert(t *testing.T) { 16 insert() 17 } 18 19 func TestUpdate(t *testing.T) { 20 update() 21 } 22 23 func TestQueryOne(t *testing.T) { 24 queryOne() 25 } 26 func TestQueryMulti(t *testing.T) { 27 queryMulti() 28 } 29 30 func TestTransaction(t *testing.T) { 31 transaction() 32 } 33 func TestQueryAllDb(t *testing.T) { 34 queryAllDb() 35 36 } 37 38 type lua struct { 39 Title []interface{} 40 Data interface{} 41 } 42 43 func TestTemplate(t *testing.T) { 44 const mm = ` 45 return { 46 title={ {{strupper .Title}} }, 47 records={ 48 49 } 50 } 51 ` 52 d := []string{"id", "activityId", "time", "xixi"} 53 var dataArr []interface{} 54 dataArr = append(dataArr, 66) 55 for _, v := range d { 56 dataArr = append(dataArr, v) 57 } 58 dataArr = append(dataArr, 66) 59 dataArr = append(dataArr, 45) 60 61 data := lua{ 62 Title: dataArr, 63 } 64 65 var fmap = template.FuncMap{ 66 "strupper": func(ss []interface{}) string { 67 var b bytes.Buffer 68 l := len(ss) 69 for i, s := range ss { 70 switch s.(type) { 71 case string: 72 if i == l-1 { 73 b.WriteString("\"") 74 b.WriteString(s.(string)) 75 b.WriteString("\"") 76 } else { 77 b.WriteString(`"`) 78 b.WriteString(s.(string)) 79 b.WriteString(`",`) 80 } 81 case int: 82 if i == l-1 { 83 b.WriteString(strconv.Itoa(s.(int))) 84 } else { 85 b.WriteString(strconv.Itoa(s.(int)) + ",") 86 } 87 } 88 } 89 return b.String() 90 }, 91 } 92 tp := template.New("").Funcs(fmap) 93 //tp.Delims("{{", "}}") 94 tp = template.Must(tp.Parse(mm)) 95 96 tp.Execute(os.Stdout, data) 97 }