diff --git a/README.md b/README.md index e70598f6..e316d538 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ Method | Description ### Comparison Assertions Method | Description ------------------------------------------------ | -------------------------------------------------- +----------------------------------------------- | ------------------------------------------------------------------ `true($value, $message = '')` | Check that a value is `true` `false($value, $message = '')` | Check that a value is `false` `notFalse($value, $message = '')` | Check that a value is not `false` @@ -132,7 +132,8 @@ Method | Description `lessThan($value, $value2, $message = '')` | Check that a value is less than another `lessThanEq($value, $value2, $message = '')` | Check that a value is less than or equal to another `range($value, $min, $max, $message = '')` | Check that a value is within a range -`oneOf($value, array $values, $message = '')` | Check that a value is one of a list of values +`inArray($value, array $values, $message = '')` | Check that a value is one of a list of values +`oneOf($value, array $values, $message = '')` | Check that a value is one of a list of values (alias of `inArray`) ### String Assertions diff --git a/src/Assert.php b/src/Assert.php index 7b58f9d1..05970a71 100644 --- a/src/Assert.php +++ b/src/Assert.php @@ -70,6 +70,7 @@ * @method static void nullOrLessThanEq($value, $limit, $message = '') * @method static void nullOrRange($value, $min, $max, $message = '') * @method static void nullOrOneOf($value, $values, $message = '') + * @method static void nullOrInArray($value, $values, $message = '') * @method static void nullOrContains($value, $subString, $message = '') * @method static void nullOrNotContains($value, $subString, $message = '') * @method static void nullOrNotWhitespaceOnly($value, $message = '') @@ -161,6 +162,7 @@ * @method static void allLessThanEq($values, $limit, $message = '') * @method static void allRange($values, $min, $max, $message = '') * @method static void allOneOf($values, $values, $message = '') + * @method static void allInArray($values, $values, $message = '') * @method static void allContains($values, $subString, $message = '') * @method static void allNotContains($values, $subString, $message = '') * @method static void allNotWhitespaceOnly($values, $message = '') @@ -1104,7 +1106,7 @@ public static function range($value, $min, $max, $message = '') } /** - * Does strict comparison, so Assert::oneOf(3, ['3']) does not pass the assertion. + * A more human-readable alias of Assert::inArray(). * * @psalm-pure * @@ -1115,6 +1117,22 @@ public static function range($value, $min, $max, $message = '') * @throws InvalidArgumentException */ public static function oneOf($value, array $values, $message = '') + { + static::inArray($value, $values, $message); + } + + /** + * Does strict comparison, so Assert::inArray(3, ['3']) does not pass the assertion. + * + * @psalm-pure + * + * @param mixed $value + * @param array $values + * @param string $message + * + * @throws InvalidArgumentException + */ + public static function inArray($value, array $values, $message = '') { if (!\in_array($value, $values, true)) { static::reportInvalidArgument(\sprintf( diff --git a/tests/AssertTest.php b/tests/AssertTest.php index 49e9807e..a5ade77c 100644 --- a/tests/AssertTest.php +++ b/tests/AssertTest.php @@ -224,6 +224,8 @@ public function getTests() array('range', array(3, 1, 2), false), array('oneOf', array(1, array(1, 2, 3)), true), array('oneOf', array(1, array('1', '2', '3')), false), + array('inArray', array(1, array(1, 2, 3)), true), + array('inArray', array(1, array('1', '2', '3')), false), array('contains', array('abcd', 'ab'), true), array('contains', array('abcd', 'bc'), true), array('contains', array('abcd', 'cd'), true),