From a6d421feff8e423b97ac85555f318067c5f339c7 Mon Sep 17 00:00:00 2001 From: Alexander Strizhak Date: Wed, 13 Mar 2024 09:11:12 +0300 Subject: [PATCH] [fix] DatetimeChecker error message for: after, before (#17) --- src/Checker/DatetimeChecker.php | 4 +- tests/src/Functional/DatetimeCheckerTest.php | 43 +++++++++++++++++ tests/src/Functional/NumberCheckerTest.php | 50 ++++++++++++++++++++ 3 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 tests/src/Functional/DatetimeCheckerTest.php create mode 100644 tests/src/Functional/NumberCheckerTest.php diff --git a/src/Checker/DatetimeChecker.php b/src/Checker/DatetimeChecker.php index f1c4c32..a65654d 100644 --- a/src/Checker/DatetimeChecker.php +++ b/src/Checker/DatetimeChecker.php @@ -17,8 +17,8 @@ final class DatetimeChecker extends AbstractChecker 'valid' => '[[Not a valid date.]]', 'format' => '[[Value should match the specified date format {1}.]]', 'timezone' => '[[Not a valid timezone.]]', - 'before' => '[[Value {1} should come before value {2}.]]', - 'after' => '[[Value {1} should come after value {2}.]]', + 'before' => '[[Value {0} should come before value {1}.]]', + 'after' => '[[Value {0} should come after value {1}.]]', ]; //Possible format mapping private const MAP_FORMAT = [ diff --git a/tests/src/Functional/DatetimeCheckerTest.php b/tests/src/Functional/DatetimeCheckerTest.php new file mode 100644 index 0000000..7b16453 --- /dev/null +++ b/tests/src/Functional/DatetimeCheckerTest.php @@ -0,0 +1,43 @@ +getContainer()->get(ValidationInterface::class); + $this->assertNotNull($v); + $res = $v->validate( + [ + 'dateBefore' => '2024-12-12', + 'dateAfter' => '2004-01-01', + ], + [ + 'dateBefore' => [ + ['datetime::before', 'dateAfter'], + ], + 'dateAfter' => [ + ['datetime::after', 'dateBefore'], + ], + ], + ); + $this->assertFalse($res->isValid()); + $this->assertEquals( + [ + 'dateBefore' => 'Value dateBefore should come before value dateAfter.', + 'dateAfter' => 'Value dateAfter should come after value dateBefore.', + ], + $res->getErrors(), + ); + } +} diff --git a/tests/src/Functional/NumberCheckerTest.php b/tests/src/Functional/NumberCheckerTest.php new file mode 100644 index 0000000..e4f42df --- /dev/null +++ b/tests/src/Functional/NumberCheckerTest.php @@ -0,0 +1,50 @@ +getContainer()->get(ValidationInterface::class); + $this->assertNotNull($v); + $res = $v->validate( + [ + 'inRange' => 10, + 'higher' => 1, + 'lower' => 20, + ], + [ + 'inRange' => [ + ['number::range', 1, 5], + ], + 'higher' => [ + ['number::higher', 10], + ], + 'lower' => [ + ['number::lower', 10], + ], + ], + ); + $this->assertFalse($res->isValid()); + $this->assertEquals( + [ + 'inRange' => 'Your value should be in range of 1-5.', + 'higher' => 'Your value should be equal to or higher than 10.', + 'lower' => 'Your value should be equal to or lower than 10.', + ], + $res->getErrors(), + ); + } +}