@@ -9003,3 +9003,77 @@ func TestGetTag(t *testing.T) {
90039003 Equal (t , errs , nil )
90049004 Equal (t , tag , "mytag" )
90059005}
9006+
9007+ func TestLowercaseValidation (t * testing.T ) {
9008+ tests := []struct {
9009+ param string
9010+ expected bool
9011+ }{
9012+ {`abcdefg` , true },
9013+ {`Abcdefg` , false },
9014+ {"" , false },
9015+ }
9016+
9017+ validate := New ()
9018+
9019+ for i , test := range tests {
9020+
9021+ errs := validate .Var (test .param , "lowercase" )
9022+
9023+ if test .expected {
9024+ if ! IsEqual (errs , nil ) {
9025+ t .Fatalf ("Index: %d lowercase failed Error: %s" , i , errs )
9026+ }
9027+ } else {
9028+ if IsEqual (errs , nil ) {
9029+ t .Fatalf ("Index: %d lowercase failed Error: %s" , i , errs )
9030+ } else {
9031+ val := getError (errs , "" , "" )
9032+ if val .Tag () != "lowercase" {
9033+ t .Fatalf ("Index: %d lowercase failed Error: %s" , i , errs )
9034+ }
9035+ }
9036+ }
9037+ }
9038+
9039+ PanicMatches (t , func () {
9040+ _ = validate .Var (2 , "lowercase" )
9041+ }, "Bad field type int" )
9042+ }
9043+
9044+ func TestUppercaseValidation (t * testing.T ) {
9045+ tests := []struct {
9046+ param string
9047+ expected bool
9048+ }{
9049+ {`ABCDEFG` , true },
9050+ {`aBCDEFG` , false },
9051+ {"" , false },
9052+ }
9053+
9054+ validate := New ()
9055+
9056+ for i , test := range tests {
9057+
9058+ errs := validate .Var (test .param , "uppercase" )
9059+
9060+ if test .expected {
9061+ if ! IsEqual (errs , nil ) {
9062+ t .Fatalf ("Index: %d uppercase failed Error: %s" , i , errs )
9063+ }
9064+ } else {
9065+ if IsEqual (errs , nil ) {
9066+ t .Fatalf ("Index: %d uppercase failed Error: %s" , i , errs )
9067+ } else {
9068+ val := getError (errs , "" , "" )
9069+ if val .Tag () != "uppercase" {
9070+ t .Fatalf ("Index: %d uppercase failed Error: %s" , i , errs )
9071+ }
9072+ }
9073+ }
9074+ }
9075+
9076+ PanicMatches (t , func () {
9077+ _ = validate .Var (2 , "uppercase" )
9078+ }, "Bad field type int" )
9079+ }
0 commit comments