/t/020_constraints/008_time.t

http://github.com/tokuhirom/formvalidator-lite · Raku · 101 lines · 86 code · 15 blank · 0 comment · 8 complexity · 0823369a98d42cedca76b66528c9e833 MD5 · raw file

  1. use strict;
  2. use warnings;
  3. use utf8;
  4. use Test::Base;
  5. use FormValidator::Lite;
  6. use CGI;
  7. FormValidator::Lite->load_constraints(qw/Time/);
  8. plan tests => 1*blocks;
  9. filters {
  10. query => [qw/eval/],
  11. rule => [qw/eval/],
  12. expected => [qw/eval/],
  13. };
  14. run {
  15. my $block = shift;
  16. my $q = CGI->new($block->query);
  17. my $v = FormValidator::Lite->new($q);
  18. $v->check(
  19. $block->rule
  20. );
  21. my @expected = $block->expected;
  22. while (my ($key, $val) = splice(@expected, 0, 2)) {
  23. is($v->is_error($key), $val, $block->name);
  24. }
  25. };
  26. __END__
  27. === TIME should success
  28. --- query: { h => 12, m => 0, s => 30 }
  29. --- rule
  30. (
  31. {date => [qw/h m s/]} => ['TIME'],
  32. )
  33. --- expected
  34. (
  35. date => 0,
  36. )
  37. === TIME should fail
  38. --- query: { h => 24, m => 0, s => 0 }
  39. --- rule
  40. (
  41. {date => [qw/h m s/]} => ['TIME'],
  42. )
  43. --- expected
  44. (
  45. date => 1,
  46. )
  47. === TIME-NOT_NULL
  48. --- query: { }
  49. --- rule
  50. (
  51. {date => [qw/h m s/]} => ['TIME', 'NOT_NULL'],
  52. )
  53. --- expected
  54. (
  55. date => 1,
  56. )
  57. === TIME-NOT_NULL
  58. --- query: { }
  59. --- rule
  60. (
  61. {date => [qw/h m s/]} => ['NOT_NULL'],
  62. )
  63. --- expected
  64. (
  65. date => 1,
  66. )
  67. === TIME
  68. --- query: { time => '12:30:00' }
  69. --- rule
  70. (
  71. date => ['TIME'],
  72. )
  73. --- expected
  74. (
  75. date => 0,
  76. )
  77. === TIME should not warn with ''
  78. --- query: { h => '', m => '', s => ''}
  79. --- rule
  80. (
  81. {date => [qw/h m s/]} => ['TIME'],
  82. )
  83. --- expected
  84. (
  85. date => 1,
  86. )