github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/validate/test/model_test.go (about) 1 package main 2 3 import ( 4 "github.com/isyscore/isc-gobase/validate" 5 "testing" 6 ) 7 8 type ValueModelIdCardEntity struct { 9 Data string `match:"model=id_card"` 10 } 11 12 type ValueModelPhone struct { 13 Data string `match:"model=phone"` 14 } 15 16 type ValueModelFixedPhoneEntity struct { 17 Data string `match:"model=fixed_phone"` 18 } 19 20 type ValueModelEmailEntity struct { 21 Data string `match:"model=mail"` 22 } 23 24 type ValueModelIpAddressEntity struct { 25 Data string `match:"model=ip"` 26 } 27 28 // 身份证号 29 func TestModelIdCard(t *testing.T) { 30 var value ValueModelIdCardEntity 31 var result bool 32 var err string 33 34 // 测试 异常情况 35 value = ValueModelIdCardEntity{Data: "4109281002226311"} 36 result, err = validate.Check(value) 37 Equal(t, err, "属性 Data 的值 4109281002226311 不符合身份证要求", result, false) 38 39 // 测试 异常情况 40 value = ValueModelIdCardEntity{Data: "28712381"} 41 result, err = validate.Check(value) 42 Equal(t, err, "属性 Data 的值 28712381 不符合身份证要求", result, false) 43 } 44 45 // 手机号 46 func TestModelPhone(t *testing.T) { 47 var value ValueModelPhone 48 var result bool 49 var err string 50 51 // 测试 正常情况 52 value = ValueModelPhone{Data: "15700092345"} 53 result, err = validate.Check(value) 54 TrueErr(t, result, err) 55 56 // 测试 异常情况 57 value = ValueModelPhone{Data: "28712381"} 58 result, err = validate.Check(value) 59 Equal(t, err, "属性 Data 的值 28712381 没有命中只允许类型 [phone]", result, false) 60 } 61 62 // 手机号 63 func TestModelPhone2(t *testing.T) { 64 var value ValueModelPhone 65 var result bool 66 var err string 67 68 // 测试 正常情况 69 value = ValueModelPhone{Data: "14500092345"} 70 result, err = validate.Check(value) 71 TrueErr(t, result, err) 72 73 // 测试 异常情况 74 value = ValueModelPhone{Data: "28712381"} 75 result, err = validate.Check(value) 76 Equal(t, err, "属性 Data 的值 28712381 没有命中只允许类型 [phone]", result, false) 77 } 78 79 // 固定电话 80 func TestModelFixedPhone(t *testing.T) { 81 var value ValueModelFixedPhoneEntity 82 var result bool 83 var err string 84 85 // 测试 正常情况 86 value = ValueModelFixedPhoneEntity{Data: "0393-3879765"} 87 result, err = validate.Check(value) 88 TrueErr(t, result, err) 89 90 // 测试 异常情况 91 value = ValueModelFixedPhoneEntity{Data: "1387772"} 92 result, err = validate.Check(value) 93 Equal(t, err, "属性 Data 的值 1387772 没有命中只允许类型 [fixed_phone]", result, false) 94 } 95 96 // 邮箱 97 func TestModelMail(t *testing.T) { 98 var value ValueModelEmailEntity 99 var result bool 100 var err string 101 102 // 测试 正常情况 103 value = ValueModelEmailEntity{Data: "123lan@163.com"} 104 result, err = validate.Check(value) 105 TrueErr(t, result, err) 106 107 // 测试 异常情况 108 value = ValueModelEmailEntity{Data: "123@"} 109 result, err = validate.Check(value) 110 Equal(t, err, "属性 Data 的值 123@ 没有命中只允许类型 [mail]", result, false) 111 } 112 113 // ip地址 114 func TestModelIpAddress(t *testing.T) { 115 var value ValueModelIpAddressEntity 116 var result bool 117 var err string 118 119 // 测试 正常情况 120 value = ValueModelIpAddressEntity{Data: "192.123.231.222"} 121 result, err = validate.Check(value) 122 TrueErr(t, result, err) 123 124 // 测试 异常情况 125 value = ValueModelIpAddressEntity{Data: "123.231.222"} 126 result, err = validate.Check(value) 127 Equal(t, err, "属性 Data 的值 123.231.222 没有命中只允许类型 [ip]", result, false) 128 129 // 测试 异常情况 130 value = ValueModelIpAddressEntity{Data: "192.123.231.adf"} 131 result, err = validate.Check(value) 132 Equal(t, err, "属性 Data 的值 192.123.231.adf 没有命中只允许类型 [ip]", result, false) 133 }