...

Source file src/github.com/go-playground/validator/v10/translations/pt/pt_test.go

Documentation: github.com/go-playground/validator/v10/translations/pt

     1  package pt
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	. "github.com/go-playground/assert/v2"
     8  	"github.com/go-playground/locales/pt"
     9  	ut "github.com/go-playground/universal-translator"
    10  
    11  	"github.com/go-playground/validator/v10"
    12  )
    13  
    14  func TestTranslations(t *testing.T) {
    15  
    16  	pt := pt.New()
    17  	uni := ut.New(pt, pt)
    18  	trans, _ := uni.GetTranslator("pt")
    19  
    20  	validate := validator.New()
    21  
    22  	err := RegisterDefaultTranslations(validate, trans)
    23  	Equal(t, err, nil)
    24  
    25  	type Inner struct {
    26  		EqCSFieldString  string
    27  		NeCSFieldString  string
    28  		GtCSFieldString  string
    29  		GteCSFieldString string
    30  		LtCSFieldString  string
    31  		LteCSFieldString string
    32  	}
    33  
    34  	type Test struct {
    35  		Inner             Inner
    36  		RequiredString    string            `validate:"required"`
    37  		RequiredNumber    int               `validate:"required"`
    38  		RequiredMultiple  []string          `validate:"required"`
    39  		LenString         string            `validate:"len=1"`
    40  		LenNumber         float64           `validate:"len=1113.00"`
    41  		LenMultiple       []string          `validate:"len=7"`
    42  		MinString         string            `validate:"min=1"`
    43  		MinNumber         float64           `validate:"min=1113.00"`
    44  		MinMultiple       []string          `validate:"min=7"`
    45  		MaxString         string            `validate:"max=3"`
    46  		MaxNumber         float64           `validate:"max=1113.00"`
    47  		MaxMultiple       []string          `validate:"max=7"`
    48  		EqString          string            `validate:"eq=3"`
    49  		EqNumber          float64           `validate:"eq=2.33"`
    50  		EqMultiple        []string          `validate:"eq=7"`
    51  		NeString          string            `validate:"ne="`
    52  		NeNumber          float64           `validate:"ne=0.00"`
    53  		NeMultiple        []string          `validate:"ne=0"`
    54  		LtString          string            `validate:"lt=3"`
    55  		LtNumber          float64           `validate:"lt=5.56"`
    56  		LtMultiple        []string          `validate:"lt=2"`
    57  		LtTime            time.Time         `validate:"lt"`
    58  		LteString         string            `validate:"lte=3"`
    59  		LteNumber         float64           `validate:"lte=5.56"`
    60  		LteMultiple       []string          `validate:"lte=2"`
    61  		LteTime           time.Time         `validate:"lte"`
    62  		GtString          string            `validate:"gt=3"`
    63  		GtNumber          float64           `validate:"gt=5.56"`
    64  		GtMultiple        []string          `validate:"gt=2"`
    65  		GtTime            time.Time         `validate:"gt"`
    66  		GteString         string            `validate:"gte=3"`
    67  		GteNumber         float64           `validate:"gte=5.56"`
    68  		GteMultiple       []string          `validate:"gte=2"`
    69  		GteTime           time.Time         `validate:"gte"`
    70  		EqFieldString     string            `validate:"eqfield=MaxString"`
    71  		EqCSFieldString   string            `validate:"eqcsfield=Inner.EqCSFieldString"`
    72  		NeCSFieldString   string            `validate:"necsfield=Inner.NeCSFieldString"`
    73  		GtCSFieldString   string            `validate:"gtcsfield=Inner.GtCSFieldString"`
    74  		GteCSFieldString  string            `validate:"gtecsfield=Inner.GteCSFieldString"`
    75  		LtCSFieldString   string            `validate:"ltcsfield=Inner.LtCSFieldString"`
    76  		LteCSFieldString  string            `validate:"ltecsfield=Inner.LteCSFieldString"`
    77  		NeFieldString     string            `validate:"nefield=EqFieldString"`
    78  		GtFieldString     string            `validate:"gtfield=MaxString"`
    79  		GteFieldString    string            `validate:"gtefield=MaxString"`
    80  		LtFieldString     string            `validate:"ltfield=MaxString"`
    81  		LteFieldString    string            `validate:"ltefield=MaxString"`
    82  		AlphaString       string            `validate:"alpha"`
    83  		AlphanumString    string            `validate:"alphanum"`
    84  		NumericString     string            `validate:"numeric"`
    85  		NumberString      string            `validate:"number"`
    86  		HexadecimalString string            `validate:"hexadecimal"`
    87  		HexColorString    string            `validate:"hexcolor"`
    88  		RGBColorString    string            `validate:"rgb"`
    89  		RGBAColorString   string            `validate:"rgba"`
    90  		HSLColorString    string            `validate:"hsl"`
    91  		HSLAColorString   string            `validate:"hsla"`
    92  		Email             string            `validate:"email"`
    93  		URL               string            `validate:"url"`
    94  		URI               string            `validate:"uri"`
    95  		Base64            string            `validate:"base64"`
    96  		Contains          string            `validate:"contains=purpose"`
    97  		ContainsAny       string            `validate:"containsany=!@#$"`
    98  		Excludes          string            `validate:"excludes=text"`
    99  		ExcludesAll       string            `validate:"excludesall=!@#$"`
   100  		ExcludesRune      string            `validate:"excludesrune=☻"`
   101  		ISBN              string            `validate:"isbn"`
   102  		ISBN10            string            `validate:"isbn10"`
   103  		ISBN13            string            `validate:"isbn13"`
   104  		ISSN              string            `validate:"issn"`
   105  		UUID              string            `validate:"uuid"`
   106  		UUID3             string            `validate:"uuid3"`
   107  		UUID4             string            `validate:"uuid4"`
   108  		UUID5             string            `validate:"uuid5"`
   109  		ULID              string            `validate:"ulid"`
   110  		ASCII             string            `validate:"ascii"`
   111  		PrintableASCII    string            `validate:"printascii"`
   112  		MultiByte         string            `validate:"multibyte"`
   113  		DataURI           string            `validate:"datauri"`
   114  		Latitude          string            `validate:"latitude"`
   115  		Longitude         string            `validate:"longitude"`
   116  		SSN               string            `validate:"ssn"`
   117  		IP                string            `validate:"ip"`
   118  		IPv4              string            `validate:"ipv4"`
   119  		IPv6              string            `validate:"ipv6"`
   120  		CIDR              string            `validate:"cidr"`
   121  		CIDRv4            string            `validate:"cidrv4"`
   122  		CIDRv6            string            `validate:"cidrv6"`
   123  		TCPAddr           string            `validate:"tcp_addr"`
   124  		TCPAddrv4         string            `validate:"tcp4_addr"`
   125  		TCPAddrv6         string            `validate:"tcp6_addr"`
   126  		UDPAddr           string            `validate:"udp_addr"`
   127  		UDPAddrv4         string            `validate:"udp4_addr"`
   128  		UDPAddrv6         string            `validate:"udp6_addr"`
   129  		IPAddr            string            `validate:"ip_addr"`
   130  		IPAddrv4          string            `validate:"ip4_addr"`
   131  		IPAddrv6          string            `validate:"ip6_addr"`
   132  		UinxAddr          string            `validate:"unix_addr"` // can't fail from within Go's net package currently, but maybe in the future
   133  		MAC               string            `validate:"mac"`
   134  		IsColor           string            `validate:"iscolor"`
   135  		StrPtrMinLen      *string           `validate:"min=10"`
   136  		StrPtrMaxLen      *string           `validate:"max=1"`
   137  		StrPtrLen         *string           `validate:"len=2"`
   138  		StrPtrLt          *string           `validate:"lt=1"`
   139  		StrPtrLte         *string           `validate:"lte=1"`
   140  		StrPtrGt          *string           `validate:"gt=10"`
   141  		StrPtrGte         *string           `validate:"gte=10"`
   142  		OneOfString       string            `validate:"oneof=red green"`
   143  		OneOfInt          int               `validate:"oneof=5 63"`
   144  		UniqueSlice       []string          `validate:"unique"`
   145  		UniqueArray       [3]string         `validate:"unique"`
   146  		UniqueMap         map[string]string `validate:"unique"`
   147  		JSONString        string            `validate:"json"`
   148  		LowercaseString   string            `validate:"lowercase"`
   149  		UppercaseString   string            `validate:"uppercase"`
   150  		Datetime          string            `validate:"datetime=2006-01-02"`
   151  		Image			  string			`validate:"image"`
   152  	}
   153  
   154  	var test Test
   155  
   156  	test.Inner.EqCSFieldString = "1234"
   157  	test.Inner.GtCSFieldString = "1234"
   158  	test.Inner.GteCSFieldString = "1234"
   159  
   160  	test.MaxString = "1234"
   161  	test.MaxNumber = 2000
   162  	test.MaxMultiple = make([]string, 9)
   163  
   164  	test.LtString = "1234"
   165  	test.LtNumber = 6
   166  	test.LtMultiple = make([]string, 3)
   167  	test.LtTime = time.Now().Add(time.Hour * 24)
   168  
   169  	test.LteString = "1234"
   170  	test.LteNumber = 6
   171  	test.LteMultiple = make([]string, 3)
   172  	test.LteTime = time.Now().Add(time.Hour * 24)
   173  
   174  	test.LtFieldString = "12345"
   175  	test.LteFieldString = "12345"
   176  
   177  	test.LtCSFieldString = "1234"
   178  	test.LteCSFieldString = "1234"
   179  
   180  	test.AlphaString = "abc3"
   181  	test.AlphanumString = "abc3!"
   182  	test.NumericString = "12E.00"
   183  	test.NumberString = "12E"
   184  
   185  	test.Excludes = "this is some test text"
   186  	test.ExcludesAll = "This is Great!"
   187  	test.ExcludesRune = "Love it ☻"
   188  
   189  	test.ASCII = "カタカナ"
   190  	test.PrintableASCII = "カタカナ"
   191  
   192  	test.MultiByte = "1234feerf"
   193  
   194  	test.LowercaseString = "ABCDEFG"
   195  	test.UppercaseString = "abcdefg"
   196  
   197  	s := "toolong"
   198  	test.StrPtrMaxLen = &s
   199  	test.StrPtrLen = &s
   200  
   201  	test.UniqueSlice = []string{"1234", "1234"}
   202  	test.UniqueMap = map[string]string{"key1": "1234", "key2": "1234"}
   203  	test.Datetime = "2008-Feb-01"
   204  
   205  	err = validate.Struct(test)
   206  	NotEqual(t, err, nil)
   207  
   208  	errs, ok := err.(validator.ValidationErrors)
   209  	Equal(t, ok, true)
   210  
   211  	tests := []struct {
   212  		ns       string
   213  		expected string
   214  	}{
   215  		{
   216  			ns:       "Test.IsColor",
   217  			expected: "IsColor deve ser uma cor válida",
   218  		},
   219  		{
   220  			ns:       "Test.MAC",
   221  			expected: "MAC deve conter um endereço MAC válido",
   222  		},
   223  		{
   224  			ns:       "Test.IPAddr",
   225  			expected: "IPAddr deve ser um endereço IP resolvível",
   226  		},
   227  		{
   228  			ns:       "Test.IPAddrv4",
   229  			expected: "IPAddrv4 deve ser um endereço IPv4 resolvível",
   230  		},
   231  		{
   232  			ns:       "Test.IPAddrv6",
   233  			expected: "IPAddrv6 deve ser um endereço IPv6 resolvível",
   234  		},
   235  		{
   236  			ns:       "Test.UDPAddr",
   237  			expected: "UDPAddr deve ser um endereço UDP válido",
   238  		},
   239  		{
   240  			ns:       "Test.UDPAddrv4",
   241  			expected: "UDPAddrv4 deve ser um endereço UDP IPv4 válido",
   242  		},
   243  		{
   244  			ns:       "Test.UDPAddrv6",
   245  			expected: "UDPAddrv6 deve ser um endereço UDP IPv6 válido",
   246  		},
   247  		{
   248  			ns:       "Test.TCPAddr",
   249  			expected: "TCPAddr deve ser um endereço TCP válido",
   250  		},
   251  		{
   252  			ns:       "Test.TCPAddrv4",
   253  			expected: "TCPAddrv4 deve ser um endereço TCP IPv4 válido",
   254  		},
   255  		{
   256  			ns:       "Test.TCPAddrv6",
   257  			expected: "TCPAddrv6 deve ser um endereço TCP IPv6 válido",
   258  		},
   259  		{
   260  			ns:       "Test.CIDR",
   261  			expected: "CIDR não respeita a notação CIDR",
   262  		},
   263  		{
   264  			ns:       "Test.CIDRv4",
   265  			expected: "CIDRv4 não respeita a notação CIDR para um endereço IPv4",
   266  		},
   267  		{
   268  			ns:       "Test.CIDRv6",
   269  			expected: "CIDRv6 não respeita a notação CIDR para um endereço IPv6",
   270  		},
   271  		{
   272  			ns:       "Test.SSN",
   273  			expected: "SSN deve ser um número SSN válido",
   274  		},
   275  		{
   276  			ns:       "Test.IP",
   277  			expected: "IP deve ser um endereço IP válido",
   278  		},
   279  		{
   280  			ns:       "Test.IPv4",
   281  			expected: "IPv4 deve ser um endereço IPv4 válido",
   282  		},
   283  		{
   284  			ns:       "Test.IPv6",
   285  			expected: "IPv6 deve ser um endereço IPv6 válido",
   286  		},
   287  		{
   288  			ns:       "Test.DataURI",
   289  			expected: "DataURI deve conter um Data URI válido",
   290  		},
   291  		{
   292  			ns:       "Test.Latitude",
   293  			expected: "Latitude deve conter uma coordenada de latitude válida",
   294  		},
   295  		{
   296  			ns:       "Test.Longitude",
   297  			expected: "Longitude deve conter uma coordenada de longitude válida",
   298  		},
   299  		{
   300  			ns:       "Test.MultiByte",
   301  			expected: "MultiByte deve conter caracteres multibyte",
   302  		},
   303  		{
   304  			ns:       "Test.ASCII",
   305  			expected: "ASCII deve conter apenas caracteres ascii",
   306  		},
   307  		{
   308  			ns:       "Test.PrintableASCII",
   309  			expected: "PrintableASCII deve conter apenas caracteres ascii imprimíveis",
   310  		},
   311  		{
   312  			ns:       "Test.UUID",
   313  			expected: "UUID deve ser um UUID válido",
   314  		},
   315  		{
   316  			ns:       "Test.UUID3",
   317  			expected: "UUID3 deve ser um UUID versão 3 válido",
   318  		},
   319  		{
   320  			ns:       "Test.UUID4",
   321  			expected: "UUID4 deve ser um UUID versão 4 válido",
   322  		},
   323  		{
   324  			ns:       "Test.UUID5",
   325  			expected: "UUID5 deve ser um UUID versão 5 válido",
   326  		},
   327  		{
   328  			ns:       "Test.ULID",
   329  			expected: "ULID deve ser um ULID válido",
   330  		},
   331  		{
   332  			ns:       "Test.ISBN",
   333  			expected: "ISBN deve ser um número de ISBN válido",
   334  		},
   335  		{
   336  			ns:       "Test.ISBN10",
   337  			expected: "ISBN10 deve ser um número ISBN-10 válido",
   338  		},
   339  		{
   340  			ns:       "Test.ISBN13",
   341  			expected: "ISBN13 deve ser um número ISBN-13 válido",
   342  		},
   343  		{
   344  			ns:       "Test.ISSN",
   345  			expected: "ISSN deve ser um número ISSN válido",
   346  		},
   347  		{
   348  			ns:       "Test.Excludes",
   349  			expected: "Excludes não deve conter o texto 'text'",
   350  		},
   351  		{
   352  			ns:       "Test.ExcludesAll",
   353  			expected: "ExcludesAll não deve conter os seguintes caracteres '!@#$'",
   354  		},
   355  		{
   356  			ns:       "Test.ExcludesRune",
   357  			expected: "ExcludesRune não pode conter o seguinte '☻'",
   358  		},
   359  		{
   360  			ns:       "Test.ContainsAny",
   361  			expected: "ContainsAny deve conter pelo menos um dos seguintes caracteres '!@#$'",
   362  		},
   363  		{
   364  			ns:       "Test.Contains",
   365  			expected: "Contains deve conter o texto 'purpose'",
   366  		},
   367  		{
   368  			ns:       "Test.Base64",
   369  			expected: "Base64 deve ser uma string Base64 válida",
   370  		},
   371  		{
   372  			ns:       "Test.Email",
   373  			expected: "Email deve ser um endereço de e-mail válido",
   374  		},
   375  		{
   376  			ns:       "Test.URL",
   377  			expected: "URL deve ser um URL válido",
   378  		},
   379  		{
   380  			ns:       "Test.URI",
   381  			expected: "URI deve ser um URI válido",
   382  		},
   383  		{
   384  			ns:       "Test.RGBColorString",
   385  			expected: "RGBColorString deve ser uma cor RGB válida",
   386  		},
   387  		{
   388  			ns:       "Test.RGBAColorString",
   389  			expected: "RGBAColorString deve ser uma cor RGBA válida",
   390  		},
   391  		{
   392  			ns:       "Test.HSLColorString",
   393  			expected: "HSLColorString deve ser uma cor HSL válida",
   394  		},
   395  		{
   396  			ns:       "Test.HSLAColorString",
   397  			expected: "HSLAColorString deve ser uma cor HSLA válida",
   398  		},
   399  		{
   400  			ns:       "Test.HexadecimalString",
   401  			expected: "HexadecimalString deve ser um hexadecimal válido",
   402  		},
   403  		{
   404  			ns:       "Test.HexColorString",
   405  			expected: "HexColorString deve ser uma cor HEX válida",
   406  		},
   407  		{
   408  			ns:       "Test.NumberString",
   409  			expected: "NumberString deve ser um número válido",
   410  		},
   411  		{
   412  			ns:       "Test.NumericString",
   413  			expected: "NumericString deve ser um valor numérico válido",
   414  		},
   415  		{
   416  			ns:       "Test.AlphanumString",
   417  			expected: "AlphanumString deve conter apenas caracteres alfanuméricos",
   418  		},
   419  		{
   420  			ns:       "Test.AlphaString",
   421  			expected: "AlphaString deve conter apenas caracteres alfabéticos",
   422  		},
   423  		{
   424  			ns:       "Test.LtFieldString",
   425  			expected: "LtFieldString deve ser menor que MaxString",
   426  		},
   427  		{
   428  			ns:       "Test.LteFieldString",
   429  			expected: "LteFieldString deve ser menor ou igual que MaxString",
   430  		},
   431  		{
   432  			ns:       "Test.GtFieldString",
   433  			expected: "GtFieldString deve ser maior que MaxString",
   434  		},
   435  		{
   436  			ns:       "Test.GteFieldString",
   437  			expected: "GteFieldString deve ser maior ou igual que MaxString",
   438  		},
   439  		{
   440  			ns:       "Test.NeFieldString",
   441  			expected: "NeFieldString não deve ser igual a EqFieldString",
   442  		},
   443  		{
   444  			ns:       "Test.LtCSFieldString",
   445  			expected: "LtCSFieldString deve ser menor que Inner.LtCSFieldString",
   446  		},
   447  		{
   448  			ns:       "Test.LteCSFieldString",
   449  			expected: "LteCSFieldString deve ser menor ou igual que Inner.LteCSFieldString",
   450  		},
   451  		{
   452  			ns:       "Test.GtCSFieldString",
   453  			expected: "GtCSFieldString deve ser maior que Inner.GtCSFieldString",
   454  		},
   455  		{
   456  			ns:       "Test.GteCSFieldString",
   457  			expected: "GteCSFieldString deve ser maior ou igual que Inner.GteCSFieldString",
   458  		},
   459  		{
   460  			ns:       "Test.NeCSFieldString",
   461  			expected: "NeCSFieldString não deve ser igual a Inner.NeCSFieldString",
   462  		},
   463  		{
   464  			ns:       "Test.EqCSFieldString",
   465  			expected: "EqCSFieldString deve ser igual a Inner.EqCSFieldString",
   466  		},
   467  		{
   468  			ns:       "Test.EqFieldString",
   469  			expected: "EqFieldString deve ser igual a MaxString",
   470  		},
   471  		{
   472  			ns:       "Test.GteString",
   473  			expected: "GteString deve ter pelo menos 3 caracteres",
   474  		},
   475  		{
   476  			ns:       "Test.GteNumber",
   477  			expected: "GteNumber deve ser maior ou igual a 5,56",
   478  		},
   479  		{
   480  			ns:       "Test.GteMultiple",
   481  			expected: "GteMultiple deve conter pelo menos 2 items",
   482  		},
   483  		{
   484  			ns:       "Test.GteTime",
   485  			expected: "GteTime deve ser posterior ou igual à data/hora atual",
   486  		},
   487  		{
   488  			ns:       "Test.GtString",
   489  			expected: "GtString deve conter mais de 3 caracteres",
   490  		},
   491  		{
   492  			ns:       "Test.GtNumber",
   493  			expected: "GtNumber deve ser maior que 5,56",
   494  		},
   495  		{
   496  			ns:       "Test.GtMultiple",
   497  			expected: "GtMultiple deve conter mais de 2 items",
   498  		},
   499  		{
   500  			ns:       "Test.GtTime",
   501  			expected: "GtTime deve ser posterior à data/hora atual",
   502  		},
   503  		{
   504  			ns:       "Test.LteString",
   505  			expected: "LteString deve ter no máximo 3 caracteres",
   506  		},
   507  		{
   508  			ns:       "Test.LteNumber",
   509  			expected: "LteNumber deve ser menor ou igual a 5,56",
   510  		},
   511  		{
   512  			ns:       "Test.LteMultiple",
   513  			expected: "LteMultiple deve conter no máximo 2 items",
   514  		},
   515  		{
   516  			ns:       "Test.LteTime",
   517  			expected: "LteTime deve ser anterior ou igual à data/hora atual",
   518  		},
   519  		{
   520  			ns:       "Test.LtString",
   521  			expected: "LtString deve ter menos de 3 caracteres",
   522  		},
   523  		{
   524  			ns:       "Test.LtNumber",
   525  			expected: "LtNumber deve ser menor que 5,56",
   526  		},
   527  		{
   528  			ns:       "Test.LtMultiple",
   529  			expected: "LtMultiple deve conter menos de 2 items",
   530  		},
   531  		{
   532  			ns:       "Test.LtTime",
   533  			expected: "LtTime deve ser anterior à data / hora atual",
   534  		},
   535  		{
   536  			ns:       "Test.NeString",
   537  			expected: "NeString não deve ser igual a ",
   538  		},
   539  		{
   540  			ns:       "Test.NeNumber",
   541  			expected: "NeNumber não deve ser igual a 0.00",
   542  		},
   543  		{
   544  			ns:       "Test.NeMultiple",
   545  			expected: "NeMultiple não deve ser igual a 0",
   546  		},
   547  		{
   548  			ns:       "Test.EqString",
   549  			expected: "EqString não é igual a 3",
   550  		},
   551  		{
   552  			ns:       "Test.EqNumber",
   553  			expected: "EqNumber não é igual a 2.33",
   554  		},
   555  		{
   556  			ns:       "Test.EqMultiple",
   557  			expected: "EqMultiple não é igual a 7",
   558  		},
   559  		{
   560  			ns:       "Test.MaxString",
   561  			expected: "MaxString deve ter no máximo 3 caracteres",
   562  		},
   563  		{
   564  			ns:       "Test.MaxNumber",
   565  			expected: "MaxNumber deve ser 1.113,00 ou menos",
   566  		},
   567  		{
   568  			ns:       "Test.MaxMultiple",
   569  			expected: "MaxMultiple deve conter no máximo 7 items",
   570  		},
   571  		{
   572  			ns:       "Test.MinString",
   573  			expected: "MinString deve ter pelo menos 1 caractere",
   574  		},
   575  		{
   576  			ns:       "Test.MinNumber",
   577  			expected: "MinNumber deve ser 1.113,00 ou superior",
   578  		},
   579  		{
   580  			ns:       "Test.MinMultiple",
   581  			expected: "MinMultiple deve conter pelo menos 7 items",
   582  		},
   583  		{
   584  			ns:       "Test.LenString",
   585  			expected: "LenString deve ter 1 caractere",
   586  		},
   587  		{
   588  			ns:       "Test.LenNumber",
   589  			expected: "LenNumber deve ser igual a 1.113,00",
   590  		},
   591  		{
   592  			ns:       "Test.LenMultiple",
   593  			expected: "LenMultiple deve conter 7 items",
   594  		},
   595  		{
   596  			ns:       "Test.RequiredString",
   597  			expected: "RequiredString é obrigatório",
   598  		},
   599  		{
   600  			ns:       "Test.RequiredNumber",
   601  			expected: "RequiredNumber é obrigatório",
   602  		},
   603  		{
   604  			ns:       "Test.RequiredMultiple",
   605  			expected: "RequiredMultiple é obrigatório",
   606  		},
   607  		{
   608  			ns:       "Test.StrPtrMinLen",
   609  			expected: "StrPtrMinLen deve ter pelo menos 10 caracteres",
   610  		},
   611  		{
   612  			ns:       "Test.StrPtrMaxLen",
   613  			expected: "StrPtrMaxLen deve ter no máximo 1 caractere",
   614  		},
   615  		{
   616  			ns:       "Test.StrPtrLen",
   617  			expected: "StrPtrLen deve ter 2 caracteres",
   618  		},
   619  		{
   620  			ns:       "Test.StrPtrLt",
   621  			expected: "StrPtrLt deve ter menos de 1 caractere",
   622  		},
   623  		{
   624  			ns:       "Test.StrPtrLte",
   625  			expected: "StrPtrLte deve ter no máximo 1 caractere",
   626  		},
   627  		{
   628  			ns:       "Test.StrPtrGt",
   629  			expected: "StrPtrGt deve conter mais de 10 caracteres",
   630  		},
   631  		{
   632  			ns:       "Test.StrPtrGte",
   633  			expected: "StrPtrGte deve ter pelo menos 10 caracteres",
   634  		},
   635  		{
   636  			ns:       "Test.OneOfString",
   637  			expected: "OneOfString deve ser um de [red green]",
   638  		},
   639  		{
   640  			ns:       "Test.OneOfInt",
   641  			expected: "OneOfInt deve ser um de [5 63]",
   642  		},
   643  		{
   644  			ns:       "Test.UniqueSlice",
   645  			expected: "UniqueSlice deve conter valores únicos",
   646  		},
   647  		{
   648  			ns:       "Test.UniqueArray",
   649  			expected: "UniqueArray deve conter valores únicos",
   650  		},
   651  		{
   652  			ns:       "Test.UniqueMap",
   653  			expected: "UniqueMap deve conter valores únicos",
   654  		},
   655  		{
   656  			ns:       "Test.JSONString",
   657  			expected: "JSONString deve ser uma string json válida",
   658  		},
   659  		{
   660  			ns:       "Test.LowercaseString",
   661  			expected: "LowercaseString deve estar em minuscúlas",
   662  		},
   663  		{
   664  			ns:       "Test.UppercaseString",
   665  			expected: "UppercaseString deve estar em maiúsculas",
   666  		},
   667  		{
   668  			ns:       "Test.Datetime",
   669  			expected: "Datetime não está no formato 2006-01-02",
   670  		},
   671  		{
   672  			ns: "Test.Image",
   673  			expected: "Image deve ser uma imagem válida",
   674  		},
   675  	}
   676  
   677  	for _, tt := range tests {
   678  
   679  		var fe validator.FieldError
   680  
   681  		for _, e := range errs {
   682  			if tt.ns == e.Namespace() {
   683  				fe = e
   684  				break
   685  			}
   686  		}
   687  
   688  		NotEqual(t, fe, nil)
   689  		Equal(t, tt.expected, fe.Translate(trans))
   690  	}
   691  
   692  }
   693  

View as plain text