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  }