github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/valid/rules_test.go (about) 1 package valid 2 3 import ( 4 "regexp" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestRules(t *testing.T) { 11 12 assert := assert.New(t) 13 14 m := map[string]interface{}{ 15 "field1": "test", 16 "field2": nil, 17 "field3": "test3", 18 "field4": "joey@example.com", 19 "field5": 50, 20 } 21 22 assert.Error(NewMinLenRule("field1", 5).Apply(m)) 23 assert.NoError(NewMinLenRule("field1", 4).Apply(m)) 24 25 assert.Error(NewMaxLenRule("field1", 3).Apply(m)) 26 assert.NoError(NewMaxLenRule("field1", 4).Apply(m)) 27 28 assert.Error(NewNotNilRule("field2").Apply(m)) 29 30 assert.NoError(NewRegexpRule("field3", regexp.MustCompile(`^test3$`)).Apply(m)) 31 assert.NoError(NewRegexpRule("field3", regexp.MustCompile(`3$`)).Apply(m)) 32 assert.Error(NewRegexpRule("field3", regexp.MustCompile(`^blah$`)).Apply(m)) 33 34 assert.NoError(NewEmailRule("field4").Apply(m)) 35 assert.Error(NewEmailRule("field3").Apply(m)) 36 37 assert.NoError(NewMinValRule("field5", 40).Apply(m)) 38 assert.Error(NewMinValRule("field5", 60).Apply(m)) 39 40 assert.NoError(NewMaxValRule("field5", 60).Apply(m)) 41 assert.Error(NewMaxValRule("field5", 40).Apply(m)) 42 43 }