|
|
@@ -1,11 +1,84 @@
|
|
|
package test
|
|
|
|
|
|
-import "testing"
|
|
|
+import (
|
|
|
+ "git.sxidc.com/go-framework/baize/framework/core/tag/check"
|
|
|
+ "github.com/pkg/errors"
|
|
|
+ "strings"
|
|
|
+ "testing"
|
|
|
+ "time"
|
|
|
+)
|
|
|
|
|
|
-//type CheckStruct {
|
|
|
-//
|
|
|
-//}
|
|
|
+type CustomCheckTagStruct struct {
|
|
|
+ Time time.Time `check:"timenotzero"`
|
|
|
+}
|
|
|
+
|
|
|
+type CustomCheckTagPointerStruct struct {
|
|
|
+ Time *time.Time `check:"timenotzero"`
|
|
|
+}
|
|
|
+
|
|
|
+var fieldMap = map[string]string{
|
|
|
+ "Time": "测试时间",
|
|
|
+}
|
|
|
|
|
|
func TestCustomCheckTag(t *testing.T) {
|
|
|
+ now := time.Now().Local()
|
|
|
+
|
|
|
+ customCheckTagStruct := CustomCheckTagStruct{
|
|
|
+ Time: now,
|
|
|
+ }
|
|
|
+
|
|
|
+ customCheckTagPointerStruct := CustomCheckTagPointerStruct{
|
|
|
+ Time: &now,
|
|
|
+ }
|
|
|
+
|
|
|
+ customCheckTagStructZero := CustomCheckTagStruct{}
|
|
|
+ customCheckTagPointerStructZero := CustomCheckTagPointerStruct{}
|
|
|
+
|
|
|
+ err := check.Struct(customCheckTagStruct, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ err = check.Struct(customCheckTagPointerStruct, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ err = check.Struct(&customCheckTagStruct, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ err = check.Struct(&customCheckTagPointerStruct, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ err = check.Struct(customCheckTagStructZero, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ err = check.Struct(customCheckTagPointerStructZero, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ err = check.Struct(&customCheckTagStructZero, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
|
|
|
+ err = check.Struct(&customCheckTagPointerStructZero, fieldMap).
|
|
|
+ CheckFields("Time")
|
|
|
+ if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
}
|