|
|
@@ -4,11 +4,13 @@ import (
|
|
|
"git.sxidc.com/go-framework/baize/framework/core/tag/sql/sql_mapping"
|
|
|
"git.sxidc.com/go-tools/utils/encoding"
|
|
|
"git.sxidc.com/go-tools/utils/strutils"
|
|
|
+ "github.com/pkg/errors"
|
|
|
+ "math/rand"
|
|
|
"strings"
|
|
|
"testing"
|
|
|
)
|
|
|
|
|
|
-type SqlMappingStruct struct {
|
|
|
+type SqlMappingTagStruct struct {
|
|
|
Ignore string `sqlmapping:"-"`
|
|
|
Column string `sqlmapping:"column:test_column"`
|
|
|
Key string `sqlmapping:"key"`
|
|
|
@@ -26,201 +28,456 @@ type SqlMappingStruct struct {
|
|
|
WrongTrimSuffix int `sqlmapping:"trimSuffix:}}"`
|
|
|
}
|
|
|
|
|
|
-func (s SqlMappingStruct) checkFields(t *testing.T, fields []sql_mapping.Field) {
|
|
|
+func (s SqlMappingTagStruct) checkFields(t *testing.T, fields []sql_mapping.Field) {
|
|
|
for _, field := range fields {
|
|
|
if field.FieldName == "Ignore" || field.ColumnName == "ignore" {
|
|
|
- t.Fatal("忽略字段没有被忽略")
|
|
|
+ t.Fatalf("%+v", errors.Errorf("忽略字段没有被忽略"))
|
|
|
}
|
|
|
|
|
|
switch field.FieldName {
|
|
|
case "Column":
|
|
|
if s.Column != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.Column, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.Column, field.Value))
|
|
|
}
|
|
|
|
|
|
if field.ColumnName != "test_column" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
case "Key":
|
|
|
if field.ColumnName != "key" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.Key != field.Value {
|
|
|
- t.Fatalf("值不正确: fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.Key, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确: fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.Key, field.Value))
|
|
|
}
|
|
|
|
|
|
if !field.IsKey {
|
|
|
- t.Fatal("key解析错误")
|
|
|
+ t.Fatalf("%+v", errors.Errorf("key解析错误"))
|
|
|
}
|
|
|
case "NotUpdate":
|
|
|
if field.ColumnName != "not_update" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.NotUpdate != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.NotUpdate, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.NotUpdate, field.Value))
|
|
|
}
|
|
|
|
|
|
if field.CanUpdate {
|
|
|
- t.Fatal("notUpdate解析错误")
|
|
|
+ t.Fatalf("%+v", errors.Errorf("notUpdate解析错误"))
|
|
|
}
|
|
|
case "UpdateClear":
|
|
|
if field.ColumnName != "update_clear" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.UpdateClear != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.UpdateClear, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.UpdateClear, field.Value))
|
|
|
}
|
|
|
|
|
|
if !field.CanUpdateClear {
|
|
|
- t.Fatal("updateClear解析错误")
|
|
|
+ t.Fatalf("%+v", errors.Errorf("updateClear解析错误"))
|
|
|
}
|
|
|
case "Aes":
|
|
|
if field.ColumnName != "aes" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
encrypted, err := encoding.AESEncrypt(s.Aes, "@MKU^*HF%p%G43Fd)UAHCVD#$XZSWQ@L")
|
|
|
if err != nil {
|
|
|
- t.Fatal(err)
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
}
|
|
|
|
|
|
if encrypted != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, encrypted, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, encrypted, field.Value))
|
|
|
}
|
|
|
case "JoinWith":
|
|
|
if field.ColumnName != "join_with" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if strings.Join(s.JoinWith, "##") != field.Value {
|
|
|
- t.Fatalf("值不正确: fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, strings.Join(s.JoinWith, "##"), field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确: fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.Join(s.JoinWith, "##"), field.Value))
|
|
|
}
|
|
|
case "Trim":
|
|
|
if field.ColumnName != "trim" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if strings.Trim(s.Trim, "||") != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, strings.Trim(s.Trim, "||"), field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.Trim(s.Trim, "||"), field.Value))
|
|
|
}
|
|
|
case "TrimPrefix":
|
|
|
if field.ColumnName != "trim_prefix" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if strings.TrimPrefix(s.TrimPrefix, "{{") != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, strings.TrimPrefix(s.TrimPrefix, "{{"), field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.TrimPrefix(s.TrimPrefix, "{{"), field.Value))
|
|
|
}
|
|
|
case "TrimSuffix":
|
|
|
if field.ColumnName != "trim_suffix" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if strings.TrimSuffix(s.TrimSuffix, "}}") != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, strings.TrimSuffix(s.TrimPrefix, "}}"), field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.TrimSuffix(s.TrimPrefix, "}}"), field.Value))
|
|
|
}
|
|
|
case "WrongAes":
|
|
|
if field.ColumnName != "wrong_aes" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.WrongAes != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.WrongAes, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongAes, field.Value))
|
|
|
}
|
|
|
case "WrongJoinWith":
|
|
|
if field.ColumnName != "wrong_join_with" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.WrongJoinWith != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.WrongJoinWith, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongJoinWith, field.Value))
|
|
|
}
|
|
|
case "WrongTrim":
|
|
|
if field.ColumnName != "wrong_trim" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.WrongTrim != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.WrongTrim, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongTrim, field.Value))
|
|
|
}
|
|
|
case "WrongTrimPrefix":
|
|
|
if field.ColumnName != "wrong_trim_prefix" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.WrongTrimPrefix != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.WrongTrimPrefix, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongTrimPrefix, field.Value))
|
|
|
}
|
|
|
case "WrongTrimSuffix":
|
|
|
if field.ColumnName != "wrong_trim_suffix" {
|
|
|
- t.Fatalf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
- field.FieldName, field.ColumnName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
}
|
|
|
|
|
|
if s.WrongTrimSuffix != field.Value {
|
|
|
- t.Fatalf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
- field.FieldName, s.WrongTrimPrefix, field.Value)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongTrimPrefix, field.Value))
|
|
|
}
|
|
|
default:
|
|
|
- t.Fatalf("未知的字段名: tag fieldName: %v", field.FieldName)
|
|
|
+ t.Fatalf("%+v", errors.Errorf("未知的字段名: tag fieldName: %v", field.FieldName))
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+type SqlMappingTagStructPointerFields struct {
|
|
|
+ Ignore *string `sqlmapping:"-"`
|
|
|
+ Column *string `sqlmapping:"column:test_column"`
|
|
|
+ Key *string `sqlmapping:"key"`
|
|
|
+ NotUpdate *string `sqlmapping:"notUpdate"`
|
|
|
+ UpdateClear *string `sqlmapping:"updateClear"`
|
|
|
+ Aes *string `sqlmapping:"aes:@MKU^*HF%p%G43Fd)UAHCVD#$XZSWQ@L"`
|
|
|
+ JoinWith *[]string `sqlmapping:"joinWith:##"`
|
|
|
+ Trim *string `sqlmapping:"trim:||"`
|
|
|
+ TrimPrefix *string `sqlmapping:"trimPrefix:{{"`
|
|
|
+ TrimSuffix *string `sqlmapping:"trimSuffix:}}"`
|
|
|
+ WrongAes *int `sqlmapping:"aes:@MKU^*HF%p%G43Fd)UAHCVD#$XZSWQ@L"`
|
|
|
+ WrongJoinWith *string `sqlmapping:"joinWith:##"`
|
|
|
+ WrongTrim *int `sqlmapping:"trim:||"`
|
|
|
+ WrongTrimPrefix *int `sqlmapping:"trimPrefix:{{"`
|
|
|
+ WrongTrimSuffix *int `sqlmapping:"trimSuffix:}}"`
|
|
|
+}
|
|
|
+
|
|
|
+func (s SqlMappingTagStructPointerFields) checkFields(t *testing.T, fields []sql_mapping.Field) {
|
|
|
+ for _, field := range fields {
|
|
|
+ if field.FieldName == "Ignore" || field.ColumnName == "ignore" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("忽略字段没有被忽略"))
|
|
|
+ }
|
|
|
+
|
|
|
+ switch field.FieldName {
|
|
|
+ case "Column":
|
|
|
+ if *s.Column != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.Column, field.Value))
|
|
|
+ }
|
|
|
+
|
|
|
+ if field.ColumnName != "test_column" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+ case "Key":
|
|
|
+ if field.ColumnName != "key" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.Key != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确: fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.Key, field.Value))
|
|
|
+ }
|
|
|
+
|
|
|
+ if !field.IsKey {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("key解析错误"))
|
|
|
+ }
|
|
|
+ case "NotUpdate":
|
|
|
+ if field.ColumnName != "not_update" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.NotUpdate != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.NotUpdate, field.Value))
|
|
|
+ }
|
|
|
+
|
|
|
+ if field.CanUpdate {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("notUpdate解析错误"))
|
|
|
+ }
|
|
|
+ case "UpdateClear":
|
|
|
+ if field.ColumnName != "update_clear" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.UpdateClear != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.UpdateClear, field.Value))
|
|
|
+ }
|
|
|
+
|
|
|
+ if !field.CanUpdateClear {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("updateClear解析错误"))
|
|
|
+ }
|
|
|
+ case "Aes":
|
|
|
+ if field.ColumnName != "aes" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ encrypted, err := encoding.AESEncrypt(*s.Aes, "@MKU^*HF%p%G43Fd)UAHCVD#$XZSWQ@L")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ if encrypted != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, encrypted, field.Value))
|
|
|
+ }
|
|
|
+ case "JoinWith":
|
|
|
+ if field.ColumnName != "join_with" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if strings.Join(*s.JoinWith, "##") != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确: fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.Join(*s.JoinWith, "##"), field.Value))
|
|
|
+ }
|
|
|
+ case "Trim":
|
|
|
+ if field.ColumnName != "trim" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if strings.Trim(*s.Trim, "||") != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.Trim(*s.Trim, "||"), field.Value))
|
|
|
+ }
|
|
|
+ case "TrimPrefix":
|
|
|
+ if field.ColumnName != "trim_prefix" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if strings.TrimPrefix(*s.TrimPrefix, "{{") != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.TrimPrefix(*s.TrimPrefix, "{{"), field.Value))
|
|
|
+ }
|
|
|
+ case "TrimSuffix":
|
|
|
+ if field.ColumnName != "trim_suffix" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if strings.TrimSuffix(*s.TrimSuffix, "}}") != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, strings.TrimSuffix(*s.TrimPrefix, "}}"), field.Value))
|
|
|
+ }
|
|
|
+ case "WrongAes":
|
|
|
+ if field.ColumnName != "wrong_aes" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.WrongAes != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongAes, field.Value))
|
|
|
+ }
|
|
|
+ case "WrongJoinWith":
|
|
|
+ if field.ColumnName != "wrong_join_with" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.WrongJoinWith != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongJoinWith, field.Value))
|
|
|
+ }
|
|
|
+ case "WrongTrim":
|
|
|
+ if field.ColumnName != "wrong_trim" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.WrongTrim != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongTrim, field.Value))
|
|
|
+ }
|
|
|
+ case "WrongTrimPrefix":
|
|
|
+ if field.ColumnName != "wrong_trim_prefix" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.WrongTrimPrefix != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongTrimPrefix, field.Value))
|
|
|
+ }
|
|
|
+ case "WrongTrimSuffix":
|
|
|
+ if field.ColumnName != "wrong_trim_suffix" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("列名解析测试错误: fieldName: %v, actual columnName: %v",
|
|
|
+ field.FieldName, field.ColumnName))
|
|
|
+ }
|
|
|
+
|
|
|
+ if *s.WrongTrimSuffix != field.Value {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("值不正确:fieldName: %v, fieldValue %v, tagValue %v",
|
|
|
+ field.FieldName, s.WrongTrimPrefix, field.Value))
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ t.Fatalf("%+v", errors.Errorf("未知的字段名: tag fieldName: %v", field.FieldName))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func TestSqlMappingTagDefaultTag(t *testing.T) {
|
|
|
- s := SqlMappingStruct{
|
|
|
- Ignore: strutils.SimpleUUID(),
|
|
|
- Column: strutils.SimpleUUID(),
|
|
|
- Key: strutils.SimpleUUID(),
|
|
|
- NotUpdate: strutils.SimpleUUID(),
|
|
|
- UpdateClear: strutils.SimpleUUID(),
|
|
|
- Aes: strutils.SimpleUUID(),
|
|
|
- JoinWith: []string{strutils.SimpleUUID(), strutils.SimpleUUID()},
|
|
|
- Trim: strutils.SimpleUUID(),
|
|
|
- TrimPrefix: strutils.SimpleUUID(),
|
|
|
- TrimSuffix: strutils.SimpleUUID(),
|
|
|
+ ignore := strutils.SimpleUUID()
|
|
|
+ column := strutils.SimpleUUID()
|
|
|
+ key := strutils.SimpleUUID()
|
|
|
+ notUpdate := strutils.SimpleUUID()
|
|
|
+ updateClear := strutils.SimpleUUID()
|
|
|
+ aes := strutils.SimpleUUID()
|
|
|
+ joinWith := []string{strutils.SimpleUUID(), strutils.SimpleUUID()}
|
|
|
+ trim := strutils.SimpleUUID()
|
|
|
+ trimPrefix := strutils.SimpleUUID()
|
|
|
+ trimSuffix := strutils.SimpleUUID()
|
|
|
+ wrongAes := rand.Int()
|
|
|
+ wrongJoinWith := strutils.SimpleUUID()
|
|
|
+ wrongTrim := rand.Int()
|
|
|
+ wrongTrimPrefix := rand.Int()
|
|
|
+ wrongTrimSuffix := rand.Int()
|
|
|
+
|
|
|
+ s := SqlMappingTagStruct{
|
|
|
+ Ignore: ignore,
|
|
|
+ Column: column,
|
|
|
+ Key: key,
|
|
|
+ NotUpdate: notUpdate,
|
|
|
+ UpdateClear: updateClear,
|
|
|
+ Aes: aes,
|
|
|
+ JoinWith: joinWith,
|
|
|
+ Trim: trim,
|
|
|
+ TrimPrefix: trimPrefix,
|
|
|
+ TrimSuffix: trimSuffix,
|
|
|
+ WrongAes: wrongAes,
|
|
|
+ WrongJoinWith: wrongJoinWith,
|
|
|
+ WrongTrim: wrongTrim,
|
|
|
+ WrongTrimPrefix: wrongTrimPrefix,
|
|
|
+ WrongTrimSuffix: wrongTrimSuffix,
|
|
|
}
|
|
|
|
|
|
+ sPointerFields := SqlMappingTagStructPointerFields{
|
|
|
+ Ignore: &ignore,
|
|
|
+ Column: &column,
|
|
|
+ Key: &key,
|
|
|
+ NotUpdate: ¬Update,
|
|
|
+ UpdateClear: &updateClear,
|
|
|
+ Aes: &aes,
|
|
|
+ JoinWith: &joinWith,
|
|
|
+ Trim: &trim,
|
|
|
+ TrimPrefix: &trimPrefix,
|
|
|
+ TrimSuffix: &trimSuffix,
|
|
|
+ WrongAes: &wrongAes,
|
|
|
+ WrongJoinWith: &wrongJoinWith,
|
|
|
+ WrongTrim: &wrongTrim,
|
|
|
+ WrongTrimPrefix: &wrongTrimPrefix,
|
|
|
+ WrongTrimSuffix: &wrongTrimSuffix,
|
|
|
+ }
|
|
|
+
|
|
|
+ sPointerFieldsNil := SqlMappingTagStructPointerFields{}
|
|
|
+
|
|
|
fields, err := sql_mapping.DefaultUsage(s)
|
|
|
if err != nil {
|
|
|
- t.Fatal(err)
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
}
|
|
|
|
|
|
s.checkFields(t, fields)
|
|
|
|
|
|
fields, err = sql_mapping.DefaultUsage(&s)
|
|
|
if err != nil {
|
|
|
- t.Fatal(err)
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
}
|
|
|
|
|
|
s.checkFields(t, fields)
|
|
|
+
|
|
|
+ fields, err = sql_mapping.DefaultUsage(sPointerFields)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ sPointerFields.checkFields(t, fields)
|
|
|
+
|
|
|
+ fields, err = sql_mapping.DefaultUsage(&sPointerFields)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ sPointerFields.checkFields(t, fields)
|
|
|
+
|
|
|
+ fields, err = sql_mapping.DefaultUsage(sPointerFieldsNil)
|
|
|
+ if err == nil || err.Error() != "无法设置值,请检查是否传递的是非指针结构变量且字段为nil" {
|
|
|
+ t.Fatalf("%+v", errors.Errorf("from如果有nil字段,必须使用指针结构变量"))
|
|
|
+ }
|
|
|
+
|
|
|
+ fields, err = sql_mapping.DefaultUsage(&sPointerFieldsNil)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%+v", errors.Errorf(err.Error()))
|
|
|
+ }
|
|
|
+
|
|
|
+ sPointerFieldsNil.checkFields(t, fields)
|
|
|
}
|