check_tag_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package test
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/tag/check"
  4. "github.com/pkg/errors"
  5. "strings"
  6. "testing"
  7. "time"
  8. )
  9. type CustomCheckTagStruct struct {
  10. Time time.Time `check:"timenotzero,when=create/delete/update/foo"`
  11. }
  12. type CustomCheckTagPointerStruct struct {
  13. Time *time.Time `check:"timenotzero,when=create/delete/update/foo"`
  14. }
  15. var fieldMap = map[string]string{
  16. "Time": "测试时间",
  17. }
  18. func TestCustomCheckTag(t *testing.T) {
  19. now := time.Now().Local()
  20. customCheckTagStruct := CustomCheckTagStruct{
  21. Time: now,
  22. }
  23. customCheckTagPointerStruct := CustomCheckTagPointerStruct{
  24. Time: &now,
  25. }
  26. customCheckTagStructZero := CustomCheckTagStruct{}
  27. customCheckTagPointerStructZero := CustomCheckTagPointerStruct{}
  28. err := check.Struct(customCheckTagStruct, fieldMap).
  29. CheckWhen("create")
  30. if err != nil {
  31. t.Fatalf("%+v\n", err)
  32. }
  33. err = check.Struct(customCheckTagPointerStruct, fieldMap).
  34. CheckWhen("create")
  35. if err != nil {
  36. t.Fatalf("%+v\n", err)
  37. }
  38. err = check.Struct(&customCheckTagStruct, fieldMap).
  39. CheckWhen("delete")
  40. if err != nil {
  41. t.Fatalf("%+v\n", err)
  42. }
  43. err = check.Struct(&customCheckTagPointerStruct, fieldMap).
  44. CheckWhen("delete")
  45. if err != nil {
  46. t.Fatalf("%+v\n", err)
  47. }
  48. err = check.Struct(customCheckTagStructZero, fieldMap).
  49. CheckWhen("update")
  50. if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
  51. t.Fatalf("%+v\n", errors.New("没有检测出使用了时间零值"))
  52. }
  53. err = check.Struct(customCheckTagPointerStructZero, fieldMap).
  54. CheckWhen("update")
  55. if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
  56. t.Fatalf("%+v\n", errors.New("没有检测出使用了时间零值"))
  57. }
  58. err = check.Struct(&customCheckTagStructZero, fieldMap).
  59. CheckWhen("foo")
  60. if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
  61. t.Fatalf("%+v\n", errors.New("没有检测出使用了时间零值"))
  62. }
  63. err = check.Struct(&customCheckTagPointerStructZero, fieldMap).
  64. CheckWhen("foo")
  65. if err == nil || !strings.Contains(err.Error(), "使用了时间零值") {
  66. t.Fatalf("%+v\n", errors.New("没有检测出使用了时间零值"))
  67. }
  68. }