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  }