1package mxj 2 3import ( 4 "fmt" 5 "testing" 6) 7 8func TestStructHeader(t *testing.T) { 9 fmt.Println("\n---------------- struct_test.go ...") 10} 11 12/* 13func TestNewMapStruct(t *testing.T) { 14 type str struct { 15 IntVal int `json:"int"` 16 StrVal string `json:"str"` 17 FloatVal float64 `json:"float"` 18 BoolVal bool `json:"bool"` 19 private string 20 } 21 s := str{IntVal: 4, StrVal: "now's the time", FloatVal: 3.14159, BoolVal: true, private: "It's my party"} 22 23 m, merr := NewMapStruct(s) 24 if merr != nil { 25 t.Fatal("merr:", merr.Error()) 26 } 27 28 fmt.Printf("NewMapStruct, s: %#v\n", s) 29 fmt.Printf("NewMapStruct, m: %#v\n", m) 30 31 m, merr = NewMapStruct(s) 32 if merr != nil { 33 t.Fatal("merr:", merr.Error()) 34 } 35 36 fmt.Printf("NewMapStruct, s: %#v\n", s) 37 fmt.Printf("NewMapStruct, m: %#v\n", m) 38} 39 40func TestNewMapStructError(t *testing.T) { 41 var s string 42 _, merr := NewMapStruct(s) 43 if merr == nil { 44 t.Fatal("NewMapStructError, merr is nil") 45 } 46 47 fmt.Println("NewMapStructError, merr:", merr.Error()) 48} 49*/ 50 51func TestStruct(t *testing.T) { 52 type str struct { 53 IntVal int `json:"int"` 54 StrVal string `json:"str"` 55 FloatVal float64 `json:"float"` 56 BoolVal bool `json:"bool"` 57 private string 58 } 59 var s str 60 m := Map{"int": 4, "str": "now's the time", "float": 3.14159, "bool": true, "private": "Somewhere over the rainbow"} 61 62 mverr := m.Struct(&s) 63 if mverr != nil { 64 t.Fatal("mverr:", mverr.Error()) 65 } 66 67 fmt.Printf("Struct, m: %#v\n", m) 68 fmt.Printf("Struct, s: %#v\n", s) 69} 70 71func TestStructError(t *testing.T) { 72 type str struct { 73 IntVal int `json:"int"` 74 StrVal string `json:"str"` 75 FloatVal float64 `json:"float"` 76 BoolVal bool `json:"bool"` 77 } 78 var s str 79 mv := Map{"int": 4, "str": "now's the time", "float": 3.14159, "bool": true} 80 81 mverr := mv.Struct(s) 82 if mverr == nil { 83 t.Fatal("StructError, no error returned") 84 } 85 fmt.Println("StructError, mverr:", mverr.Error()) 86} 87