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  // }