tr_test.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652
  1. package tr
  2. import (
  3. "testing"
  4. "time"
  5. turkish "github.com/go-playground/locales/tr"
  6. ut "github.com/go-playground/universal-translator"
  7. . "gopkg.in/go-playground/assert.v1"
  8. "gopkg.in/go-playground/validator.v9"
  9. )
  10. func TestTranslations(t *testing.T) {
  11. tr := turkish.New()
  12. uni := ut.New(tr, tr)
  13. trans, _ := uni.GetTranslator("tr")
  14. validate := validator.New()
  15. err := RegisterDefaultTranslations(validate, trans)
  16. Equal(t, err, nil)
  17. type Inner struct {
  18. EqCSFieldString string
  19. NeCSFieldString string
  20. GtCSFieldString string
  21. GteCSFieldString string
  22. LtCSFieldString string
  23. LteCSFieldString string
  24. }
  25. type Test struct {
  26. Inner Inner
  27. RequiredString string `validate:"required"`
  28. RequiredNumber int `validate:"required"`
  29. RequiredMultiple []string `validate:"required"`
  30. LenString string `validate:"len=1"`
  31. LenNumber float64 `validate:"len=1113.00"`
  32. LenMultiple []string `validate:"len=7"`
  33. MinString string `validate:"min=1"`
  34. MinNumber float64 `validate:"min=1113.00"`
  35. MinMultiple []string `validate:"min=7"`
  36. MaxString string `validate:"max=3"`
  37. MaxNumber float64 `validate:"max=1113.00"`
  38. MaxMultiple []string `validate:"max=7"`
  39. EqString string `validate:"eq=3"`
  40. EqNumber float64 `validate:"eq=2.33"`
  41. EqMultiple []string `validate:"eq=7"`
  42. NeString string `validate:"ne="`
  43. NeNumber float64 `validate:"ne=0.00"`
  44. NeMultiple []string `validate:"ne=0"`
  45. LtString string `validate:"lt=3"`
  46. LtNumber float64 `validate:"lt=5.56"`
  47. LtMultiple []string `validate:"lt=2"`
  48. LtTime time.Time `validate:"lt"`
  49. LteString string `validate:"lte=3"`
  50. LteNumber float64 `validate:"lte=5.56"`
  51. LteMultiple []string `validate:"lte=2"`
  52. LteTime time.Time `validate:"lte"`
  53. GtString string `validate:"gt=3"`
  54. GtNumber float64 `validate:"gt=5.56"`
  55. GtMultiple []string `validate:"gt=2"`
  56. GtTime time.Time `validate:"gt"`
  57. GteString string `validate:"gte=3"`
  58. GteNumber float64 `validate:"gte=5.56"`
  59. GteMultiple []string `validate:"gte=2"`
  60. GteTime time.Time `validate:"gte"`
  61. EqFieldString string `validate:"eqfield=MaxString"`
  62. EqCSFieldString string `validate:"eqcsfield=Inner.EqCSFieldString"`
  63. NeCSFieldString string `validate:"necsfield=Inner.NeCSFieldString"`
  64. GtCSFieldString string `validate:"gtcsfield=Inner.GtCSFieldString"`
  65. GteCSFieldString string `validate:"gtecsfield=Inner.GteCSFieldString"`
  66. LtCSFieldString string `validate:"ltcsfield=Inner.LtCSFieldString"`
  67. LteCSFieldString string `validate:"ltecsfield=Inner.LteCSFieldString"`
  68. NeFieldString string `validate:"nefield=EqFieldString"`
  69. GtFieldString string `validate:"gtfield=MaxString"`
  70. GteFieldString string `validate:"gtefield=MaxString"`
  71. LtFieldString string `validate:"ltfield=MaxString"`
  72. LteFieldString string `validate:"ltefield=MaxString"`
  73. AlphaString string `validate:"alpha"`
  74. AlphanumString string `validate:"alphanum"`
  75. NumericString string `validate:"numeric"`
  76. NumberString string `validate:"number"`
  77. HexadecimalString string `validate:"hexadecimal"`
  78. HexColorString string `validate:"hexcolor"`
  79. RGBColorString string `validate:"rgb"`
  80. RGBAColorString string `validate:"rgba"`
  81. HSLColorString string `validate:"hsl"`
  82. HSLAColorString string `validate:"hsla"`
  83. Email string `validate:"email"`
  84. URL string `validate:"url"`
  85. URI string `validate:"uri"`
  86. Base64 string `validate:"base64"`
  87. Contains string `validate:"contains=purpose"`
  88. ContainsAny string `validate:"containsany=!@#$"`
  89. Excludes string `validate:"excludes=text"`
  90. ExcludesAll string `validate:"excludesall=!@#$"`
  91. ExcludesRune string `validate:"excludesrune=☻"`
  92. ISBN string `validate:"isbn"`
  93. ISBN10 string `validate:"isbn10"`
  94. ISBN13 string `validate:"isbn13"`
  95. UUID string `validate:"uuid"`
  96. UUID3 string `validate:"uuid3"`
  97. UUID4 string `validate:"uuid4"`
  98. UUID5 string `validate:"uuid5"`
  99. ASCII string `validate:"ascii"`
  100. PrintableASCII string `validate:"printascii"`
  101. MultiByte string `validate:"multibyte"`
  102. DataURI string `validate:"datauri"`
  103. Latitude string `validate:"latitude"`
  104. Longitude string `validate:"longitude"`
  105. SSN string `validate:"ssn"`
  106. IP string `validate:"ip"`
  107. IPv4 string `validate:"ipv4"`
  108. IPv6 string `validate:"ipv6"`
  109. CIDR string `validate:"cidr"`
  110. CIDRv4 string `validate:"cidrv4"`
  111. CIDRv6 string `validate:"cidrv6"`
  112. TCPAddr string `validate:"tcp_addr"`
  113. TCPAddrv4 string `validate:"tcp4_addr"`
  114. TCPAddrv6 string `validate:"tcp6_addr"`
  115. UDPAddr string `validate:"udp_addr"`
  116. UDPAddrv4 string `validate:"udp4_addr"`
  117. UDPAddrv6 string `validate:"udp6_addr"`
  118. IPAddr string `validate:"ip_addr"`
  119. IPAddrv4 string `validate:"ip4_addr"`
  120. IPAddrv6 string `validate:"ip6_addr"`
  121. UinxAddr string `validate:"unix_addr"` // can't fail from within Go's net package currently, but maybe in the future
  122. MAC string `validate:"mac"`
  123. IsColor string `validate:"iscolor"`
  124. StrPtrMinLen *string `validate:"min=10"`
  125. StrPtrMaxLen *string `validate:"max=1"`
  126. StrPtrLen *string `validate:"len=2"`
  127. StrPtrLt *string `validate:"lt=1"`
  128. StrPtrLte *string `validate:"lte=1"`
  129. StrPtrGt *string `validate:"gt=10"`
  130. StrPtrGte *string `validate:"gte=10"`
  131. OneOfString string `validate:"oneof=red green"`
  132. OneOfInt int `validate:"oneof=5 63"`
  133. UniqueSlice []string `validate:"unique"`
  134. UniqueArray [3]string `validate:"unique"`
  135. UniqueMap map[string]string `validate:"unique"`
  136. }
  137. var test Test
  138. test.Inner.EqCSFieldString = "1234"
  139. test.Inner.GtCSFieldString = "1234"
  140. test.Inner.GteCSFieldString = "1234"
  141. test.MaxString = "1234"
  142. test.MaxNumber = 2000
  143. test.MaxMultiple = make([]string, 9)
  144. test.LtString = "1234"
  145. test.LtNumber = 6
  146. test.LtMultiple = make([]string, 3)
  147. test.LtTime = time.Now().Add(time.Hour * 24)
  148. test.LteString = "1234"
  149. test.LteNumber = 6
  150. test.LteMultiple = make([]string, 3)
  151. test.LteTime = time.Now().Add(time.Hour * 24)
  152. test.LtFieldString = "12345"
  153. test.LteFieldString = "12345"
  154. test.LtCSFieldString = "1234"
  155. test.LteCSFieldString = "1234"
  156. test.AlphaString = "abc3"
  157. test.AlphanumString = "abc3!"
  158. test.NumericString = "12E.00"
  159. test.NumberString = "12E"
  160. test.Excludes = "this is some test text"
  161. test.ExcludesAll = "This is Great!"
  162. test.ExcludesRune = "Love it ☻"
  163. test.ASCII = "カタカナ"
  164. test.PrintableASCII = "カタカナ"
  165. test.MultiByte = "1234feerf"
  166. s := "toolong"
  167. test.StrPtrMaxLen = &s
  168. test.StrPtrLen = &s
  169. test.UniqueSlice = []string{"1234", "1234"}
  170. test.UniqueMap = map[string]string{"key1": "1234", "key2": "1234"}
  171. err = validate.Struct(test)
  172. NotEqual(t, err, nil)
  173. errs, ok := err.(validator.ValidationErrors)
  174. Equal(t, ok, true)
  175. tests := []struct {
  176. ns string
  177. expected string
  178. }{
  179. {
  180. ns: "Test.IsColor",
  181. expected: "IsColor geçerli bir renk olmalıdır",
  182. },
  183. {
  184. ns: "Test.MAC",
  185. expected: "MAC geçerli bir MAC adresi içermelidir",
  186. },
  187. {
  188. ns: "Test.IPAddr",
  189. expected: "IPAddr çözülebilir bir IP adresi olmalıdır",
  190. },
  191. {
  192. ns: "Test.IPAddrv4",
  193. expected: "IPAddrv4 çözülebilir bir IPv4 adresi olmalıdır",
  194. },
  195. {
  196. ns: "Test.IPAddrv6",
  197. expected: "IPAddrv6 çözülebilir bir IPv6 adresi olmalıdır",
  198. },
  199. {
  200. ns: "Test.UDPAddr",
  201. expected: "UDPAddr geçerli bir UDP adresi olmalıdır",
  202. },
  203. {
  204. ns: "Test.UDPAddrv4",
  205. expected: "UDPAddrv4 geçerli bir IPv4 UDP adresi olmalıdır",
  206. },
  207. {
  208. ns: "Test.UDPAddrv6",
  209. expected: "UDPAddrv6 geçerli bir IPv6 UDP adresi olmalıdır",
  210. },
  211. {
  212. ns: "Test.TCPAddr",
  213. expected: "TCPAddr geçerli bir TCP adresi olmalıdır",
  214. },
  215. {
  216. ns: "Test.TCPAddrv4",
  217. expected: "TCPAddrv4 geçerli bir IPv4 TCP adresi olmalıdır",
  218. },
  219. {
  220. ns: "Test.TCPAddrv6",
  221. expected: "TCPAddrv6 geçerli bir IPv6 TCP adresi olmalıdır",
  222. },
  223. {
  224. ns: "Test.CIDR",
  225. expected: "CIDR geçerli bir CIDR gösterimi içermelidir",
  226. },
  227. {
  228. ns: "Test.CIDRv4",
  229. expected: "CIDRv4 bir IPv4 adresi için geçerli bir CIDR gösterimi içermelidir",
  230. },
  231. {
  232. ns: "Test.CIDRv6",
  233. expected: "CIDRv6 bir IPv6 adresi için geçerli bir CIDR gösterimi içermelidir",
  234. },
  235. {
  236. ns: "Test.SSN",
  237. expected: "SSN geçerli bir SSN numarası olmalıdır",
  238. },
  239. {
  240. ns: "Test.IP",
  241. expected: "IP geçerli bir IP adresi olmalıdır",
  242. },
  243. {
  244. ns: "Test.IPv4",
  245. expected: "IPv4 geçerli bir IPv4 adresi olmalıdır",
  246. },
  247. {
  248. ns: "Test.IPv6",
  249. expected: "IPv6 geçerli bir IPv6 adresi olmalıdır",
  250. },
  251. {
  252. ns: "Test.DataURI",
  253. expected: "DataURI geçerli bir Veri URI içermelidir",
  254. },
  255. {
  256. ns: "Test.Latitude",
  257. expected: "Latitude geçerli bir enlem koordinatı içermelidir",
  258. },
  259. {
  260. ns: "Test.Longitude",
  261. expected: "Longitude geçerli bir boylam koordinatı içermelidir",
  262. },
  263. {
  264. ns: "Test.MultiByte",
  265. expected: "MultiByte çok baytlı karakterler içermelidir",
  266. },
  267. {
  268. ns: "Test.ASCII",
  269. expected: "ASCII yalnızca ascii karakterler içermelidir",
  270. },
  271. {
  272. ns: "Test.PrintableASCII",
  273. expected: "PrintableASCII yalnızca yazdırılabilir ascii karakterleri içermelidir",
  274. },
  275. {
  276. ns: "Test.UUID",
  277. expected: "UUID geçerli bir UUID olmalıdır",
  278. },
  279. {
  280. ns: "Test.UUID3",
  281. expected: "UUID3 geçerli bir sürüm 3 UUID olmalıdır",
  282. },
  283. {
  284. ns: "Test.UUID4",
  285. expected: "UUID4 geçerli bir sürüm 4 UUID olmalıdır",
  286. },
  287. {
  288. ns: "Test.UUID5",
  289. expected: "UUID5 geçerli bir sürüm 5 UUID olmalıdır",
  290. },
  291. {
  292. ns: "Test.ISBN",
  293. expected: "ISBN geçerli bir ISBN numarası olmalıdır",
  294. },
  295. {
  296. ns: "Test.ISBN10",
  297. expected: "ISBN10 geçerli bir ISBN-10 numarası olmalıdır",
  298. },
  299. {
  300. ns: "Test.ISBN13",
  301. expected: "ISBN13 geçerli bir ISBN-13 numarası olmalıdır",
  302. },
  303. {
  304. ns: "Test.Excludes",
  305. expected: "Excludes, 'text' metnini içeremez",
  306. },
  307. {
  308. ns: "Test.ExcludesAll",
  309. expected: "ExcludesAll, '!@#$' karakterlerinden hiçbirini içeremez",
  310. },
  311. {
  312. ns: "Test.ExcludesRune",
  313. expected: "ExcludesRune, '☻' ifadesini içeremez",
  314. },
  315. {
  316. ns: "Test.ContainsAny",
  317. expected: "ContainsAny, '!@#$' karakterlerinden en az birini içermelidir",
  318. },
  319. {
  320. ns: "Test.Contains",
  321. expected: "Contains, 'purpose' metnini içermelidir",
  322. },
  323. {
  324. ns: "Test.Base64",
  325. expected: "Base64 geçerli bir Base64 karakter dizesi olmalıdır",
  326. },
  327. {
  328. ns: "Test.Email",
  329. expected: "Email geçerli bir e-posta adresi olmalıdır",
  330. },
  331. {
  332. ns: "Test.URL",
  333. expected: "URL geçerli bir URL olmalıdır",
  334. },
  335. {
  336. ns: "Test.URI",
  337. expected: "URI geçerli bir URI olmalıdır",
  338. },
  339. {
  340. ns: "Test.RGBColorString",
  341. expected: "RGBColorString geçerli bir RGB rengi olmalıdır",
  342. },
  343. {
  344. ns: "Test.RGBAColorString",
  345. expected: "RGBAColorString geçerli bir RGBA rengi olmalıdır",
  346. },
  347. {
  348. ns: "Test.HSLColorString",
  349. expected: "HSLColorString geçerli bir HSL rengi olmalıdır",
  350. },
  351. {
  352. ns: "Test.HSLAColorString",
  353. expected: "HSLAColorString geçerli bir HSLA rengi olmalıdır",
  354. },
  355. {
  356. ns: "Test.HexadecimalString",
  357. expected: "HexadecimalString geçerli bir onaltılık olmalıdır",
  358. },
  359. {
  360. ns: "Test.HexColorString",
  361. expected: "HexColorString geçerli bir HEX rengi olmalıdır",
  362. },
  363. {
  364. ns: "Test.NumberString",
  365. expected: "NumberString geçerli bir sayı olmalıdır",
  366. },
  367. {
  368. ns: "Test.NumericString",
  369. expected: "NumericString geçerli bir sayısal değer olmalıdır",
  370. },
  371. {
  372. ns: "Test.AlphanumString",
  373. expected: "AlphanumString yalnızca alfanümerik karakterler içerebilir",
  374. },
  375. {
  376. ns: "Test.AlphaString",
  377. expected: "AlphaString yalnızca alfabetik karakterler içerebilir",
  378. },
  379. {
  380. ns: "Test.LtFieldString",
  381. expected: "LtFieldString, MaxString değerinden küçük olmalıdır",
  382. },
  383. {
  384. ns: "Test.LteFieldString",
  385. expected: "LteFieldString, MaxString değerinden küçük veya ona eşit olmalıdır",
  386. },
  387. {
  388. ns: "Test.GtFieldString",
  389. expected: "GtFieldString, MaxString değerinden büyük olmalıdır",
  390. },
  391. {
  392. ns: "Test.GteFieldString",
  393. expected: "GteFieldString, MaxString değerinden büyük veya ona eşit olmalıdır",
  394. },
  395. {
  396. ns: "Test.NeFieldString",
  397. expected: "NeFieldString, EqFieldString değerine eşit olmamalıdır",
  398. },
  399. {
  400. ns: "Test.LtCSFieldString",
  401. expected: "LtCSFieldString, Inner.LtCSFieldString değerinden küçük olmalıdır",
  402. },
  403. {
  404. ns: "Test.LteCSFieldString",
  405. expected: "LteCSFieldString, Inner.LteCSFieldString değerinden küçük veya ona eşit olmalıdır",
  406. },
  407. {
  408. ns: "Test.GtCSFieldString",
  409. expected: "GtCSFieldString, Inner.GtCSFieldString değerinden büyük olmalıdır",
  410. },
  411. {
  412. ns: "Test.GteCSFieldString",
  413. expected: "GteCSFieldString, Inner.GteCSFieldString değerinden küçük veya ona eşit olmalıdır",
  414. },
  415. {
  416. ns: "Test.NeCSFieldString",
  417. expected: "NeCSFieldString, Inner.NeCSFieldString değerine eşit olmamalıdır",
  418. },
  419. {
  420. ns: "Test.EqCSFieldString",
  421. expected: "EqCSFieldString, Inner.EqCSFieldString değerine eşit olmalıdır",
  422. },
  423. {
  424. ns: "Test.EqFieldString",
  425. expected: "EqFieldString, MaxString değerine eşit olmalıdır",
  426. },
  427. {
  428. ns: "Test.GteString",
  429. expected: "GteString en az 3 karakter uzunluğunda olmalıdır",
  430. },
  431. {
  432. ns: "Test.GteNumber",
  433. expected: "GteNumber, 5,56 veya daha büyük olmalıdır",
  434. },
  435. {
  436. ns: "Test.GteMultiple",
  437. expected: "GteMultiple en az 2 öğe içermelidir",
  438. },
  439. {
  440. ns: "Test.GteTime",
  441. expected: "GteTime geçerli Tarih ve Saatten büyük veya ona eşit olmalıdır",
  442. },
  443. {
  444. ns: "Test.GtString",
  445. expected: "GtString, 3 karakter uzunluğundan fazla olmalıdır",
  446. },
  447. {
  448. ns: "Test.GtNumber",
  449. expected: "GtNumber, 5,56 değerinden büyük olmalıdır",
  450. },
  451. {
  452. ns: "Test.GtMultiple",
  453. expected: "GtMultiple, 2 öğeden daha fazla içermelidir",
  454. },
  455. {
  456. ns: "Test.GtTime",
  457. expected: "GtTime geçerli Tarih ve Saatten büyük olmalıdır",
  458. },
  459. {
  460. ns: "Test.LteString",
  461. expected: "LteString en fazla 3 karakter uzunluğunda olmalıdır",
  462. },
  463. {
  464. ns: "Test.LteNumber",
  465. expected: "LteNumber, 5,56 veya daha az olmalıdır",
  466. },
  467. {
  468. ns: "Test.LteMultiple",
  469. expected: "LteMultiple, maksimum 2 öğe içermelidir",
  470. },
  471. {
  472. ns: "Test.LteTime",
  473. expected: "LteTime geçerli Tarih ve Saate eşit veya daha küçük olmalıdır",
  474. },
  475. {
  476. ns: "Test.LtString",
  477. expected: "LtString, 3 karakter uzunluğundan daha az olmalıdır",
  478. },
  479. {
  480. ns: "Test.LtNumber",
  481. expected: "LtNumber, 5,56 değerinden küçük olmalıdır",
  482. },
  483. {
  484. ns: "Test.LtMultiple",
  485. expected: "LtMultiple, 2 öğeden daha az içermelidir",
  486. },
  487. {
  488. ns: "Test.LtTime",
  489. expected: "LtTime geçerli Tarih ve Saatten daha az olmalıdır",
  490. },
  491. {
  492. ns: "Test.NeString",
  493. expected: "NeString, değerine eşit olmamalıdır",
  494. },
  495. {
  496. ns: "Test.NeNumber",
  497. expected: "NeNumber, 0.00 değerine eşit olmamalıdır",
  498. },
  499. {
  500. ns: "Test.NeMultiple",
  501. expected: "NeMultiple, 0 değerine eşit olmamalıdır",
  502. },
  503. {
  504. ns: "Test.EqString",
  505. expected: "EqString, 3 değerine eşit değil",
  506. },
  507. {
  508. ns: "Test.EqNumber",
  509. expected: "EqNumber, 2.33 değerine eşit değil",
  510. },
  511. {
  512. ns: "Test.EqMultiple",
  513. expected: "EqMultiple, 7 değerine eşit değil",
  514. },
  515. {
  516. ns: "Test.MaxString",
  517. expected: "MaxString uzunluğu en fazla 3 karakter olmalıdır",
  518. },
  519. {
  520. ns: "Test.MaxNumber",
  521. expected: "MaxNumber, 1.113,00 veya daha az olmalıdır",
  522. },
  523. {
  524. ns: "Test.MaxMultiple",
  525. expected: "MaxMultiple maksimum 7 öğe içermelidir",
  526. },
  527. {
  528. ns: "Test.MinString",
  529. expected: "MinString en az 1 karakter uzunluğunda olmalıdır",
  530. },
  531. {
  532. ns: "Test.MinNumber",
  533. expected: "MinNumber, 1.113,00 veya daha büyük olmalıdır",
  534. },
  535. {
  536. ns: "Test.MinMultiple",
  537. expected: "MinMultiple en az 7 öğe içermelidir",
  538. },
  539. {
  540. ns: "Test.LenString",
  541. expected: "LenString uzunluğu 1 karakter olmalıdır",
  542. },
  543. {
  544. ns: "Test.LenNumber",
  545. expected: "LenNumber, 1.113,00 değerine eşit olmalıdır",
  546. },
  547. {
  548. ns: "Test.LenMultiple",
  549. expected: "LenMultiple, 7 öğe içermelidir",
  550. },
  551. {
  552. ns: "Test.RequiredString",
  553. expected: "RequiredString zorunlu bir alandır",
  554. },
  555. {
  556. ns: "Test.RequiredNumber",
  557. expected: "RequiredNumber zorunlu bir alandır",
  558. },
  559. {
  560. ns: "Test.RequiredMultiple",
  561. expected: "RequiredMultiple zorunlu bir alandır",
  562. },
  563. {
  564. ns: "Test.StrPtrMinLen",
  565. expected: "StrPtrMinLen en az 10 karakter uzunluğunda olmalıdır",
  566. },
  567. {
  568. ns: "Test.StrPtrMaxLen",
  569. expected: "StrPtrMaxLen uzunluğu en fazla 1 karakter olmalıdır",
  570. },
  571. {
  572. ns: "Test.StrPtrLen",
  573. expected: "StrPtrLen uzunluğu 2 karakter olmalıdır",
  574. },
  575. {
  576. ns: "Test.StrPtrLt",
  577. expected: "StrPtrLt, 1 karakter uzunluğundan daha az olmalıdır",
  578. },
  579. {
  580. ns: "Test.StrPtrLte",
  581. expected: "StrPtrLte en fazla 1 karakter uzunluğunda olmalıdır",
  582. },
  583. {
  584. ns: "Test.StrPtrGt",
  585. expected: "StrPtrGt, 10 karakter uzunluğundan fazla olmalıdır",
  586. },
  587. {
  588. ns: "Test.StrPtrGte",
  589. expected: "StrPtrGte en az 10 karakter uzunluğunda olmalıdır",
  590. },
  591. {
  592. ns: "Test.OneOfString",
  593. expected: "OneOfString, [red green]'dan biri olmalıdır",
  594. },
  595. {
  596. ns: "Test.OneOfInt",
  597. expected: "OneOfInt, [5 63]'dan biri olmalıdır",
  598. },
  599. {
  600. ns: "Test.UniqueSlice",
  601. expected: "UniqueSlice benzersiz değerler içermelidir",
  602. },
  603. {
  604. ns: "Test.UniqueArray",
  605. expected: "UniqueArray benzersiz değerler içermelidir",
  606. },
  607. {
  608. ns: "Test.UniqueMap",
  609. expected: "UniqueMap benzersiz değerler içermelidir",
  610. },
  611. }
  612. for _, tt := range tests {
  613. var fe validator.FieldError
  614. for _, e := range errs {
  615. if tt.ns == e.Namespace() {
  616. fe = e
  617. break
  618. }
  619. }
  620. NotEqual(t, fe, nil)
  621. Equal(t, tt.expected, fe.Translate(trans))
  622. }
  623. }