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  }