github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/valid/valid_test.go (about) 1 package valid 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestObjMap(t *testing.T) { 10 11 assert := assert.New(t) 12 13 var rules Rules 14 rules = append(rules, NewMinLenRule("example1", 10)) 15 16 m := map[string]interface{}{ 17 "example1": "Something", 18 } 19 20 err := Obj(m, rules) 21 msgs, ok := err.(Messages) 22 assert.True(ok) 23 assert.Len(msgs, 1) 24 assert.Equal("minlen", msgs[0].Code) 25 26 } 27 28 type S1 struct { 29 Example1 string `valid:"name=example1,minlen=10"` 30 } 31 32 func TestObjStruct(t *testing.T) { 33 34 assert := assert.New(t) 35 36 s1 := &S1{Example1: "Something"} 37 38 err := Obj(s1, nil) 39 msgs, ok := err.(Messages) 40 assert.True(ok) 41 assert.Len(msgs, 1) 42 assert.Equal("minlen", msgs[0].Code) 43 44 } 45 46 // func TestMapAssign(t *testing.T) { 47 48 // assert := assert.New(t) 49 50 // var rules Rules 51 // rules = append(rules, NewMinLenRule("example1", 4)) 52 53 // s1 := &S1{} 54 55 // err := MapAssign(s1, map[string]interface{}{ 56 // "example1": "Value1", 57 // "example0": "Value0", 58 // }, rules) 59 60 // assert.NoError(err) 61 // assert.Equal("Value1", s1.Example1) 62 63 // } 64 65 // func TestMapAssignStrict(t *testing.T) { 66 67 // assert := assert.New(t) 68 69 // var rules Rules 70 // rules = append(rules, NewMinLenRule("example1", 4)) 71 72 // s1 := &S1{} 73 74 // err := MapAssignStrict(s1, map[string]interface{}{ 75 // "example1": "Value1", 76 // "example0": "Value0", 77 // }, rules) 78 79 // assert.Contains(err.Error(), "not found on target") 80 81 // } 82 83 // func TestRequestAssignGET(t *testing.T) { 84 85 // assert := assert.New(t) 86 87 // var rules Rules 88 // rules = append(rules, NewMinLenRule("example1", 4)) 89 90 // s1 := &S1{} 91 92 // req, err := http.NewRequest("GET", "/the-path?example1=Value1&example0=Value0", nil) 93 // assert.NoError(err) 94 95 // err = RequestAssign(s1, req, rules) 96 // assert.NoError(err) 97 // assert.Equal("Value1", s1.Example1) 98 // } 99 100 // func TestRequestAssignPOSTJSON(t *testing.T) { 101 102 // assert := assert.New(t) 103 104 // var rules Rules 105 // rules = append(rules, NewMinLenRule("example1", 4)) 106 107 // s1 := &S1{} 108 109 // req, err := http.NewRequest("POST", "/the-path", bytes.NewReader([]byte(`{"example1":"Value1"}`))) 110 // req.Header.Set("content-type", "application/json") 111 // assert.NoError(err) 112 113 // err = RequestAssign(s1, req, rules) 114 // assert.NoError(err) 115 // assert.Equal("Value1", s1.Example1) 116 // } 117 118 // func TestRequestAssignPOSTValues(t *testing.T) { 119 120 // assert := assert.New(t) 121 122 // var rules Rules 123 // rules = append(rules, NewMinLenRule("example1", 4)) 124 125 // s1 := &S1{} 126 127 // req, err := http.NewRequest("POST", "/the-path", bytes.NewReader([]byte(`example1=Value1`))) 128 // req.Header.Set("content-type", "application/x-www-form-urlencoded") 129 // assert.NoError(err) 130 131 // err = RequestAssign(s1, req, rules) 132 // assert.NoError(err) 133 // assert.Equal("Value1", s1.Example1) 134 // }