...

Source file src/github.com/go-playground/validator/v10/translations/it/it_test.go

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

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

View as plain text