-
Notifications
You must be signed in to change notification settings - Fork 150
Separate file/directory/exists assertions #291
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
if (!\file_exists($value)) { | ||
static::reportInvalidArgument(\sprintf( | ||
$message ?: 'The file %s does not exist.', | ||
$message ?: 'The path %s does not exist.', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is technically incorrect, since file_exists
is equivalent to:
return is_file($path) || is_dir($path);
@@ -1444,8 +1442,6 @@ public static function fileExists($value, $message = '') | |||
*/ | |||
public static function file($value, $message = '') | |||
{ | |||
static::fileExists($value, $message); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a pointless check.
@@ -1462,11 +1458,9 @@ public static function file($value, $message = '') | |||
*/ | |||
public static function directory($value, $message = '') | |||
{ | |||
static::fileExists($value, $message); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a pointless check. If the directory does not exist, the next assertion will never run. If the directory does exist, then it duplicates work.
if (!\is_dir($value)) { | ||
static::reportInvalidArgument(\sprintf( | ||
$message ?: 'The path %s is no directory.', | ||
$message ?: 'The path %s is not a directory.', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made this message consistent with Assert::file()
.
@@ -1426,11 +1426,9 @@ public static function lengthBetween($value, $min, $max, $message = '') | |||
*/ | |||
public static function fileExists($value, $message = '') | |||
{ | |||
static::string($value); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see other assertions doing this, so I removed it.
There is no need to use `file_exists` before using `is_file` and `is_dir`, this makes for confusing errors.
There is no need to use
file_exists
before usingis_file
andis_dir
, this makes for confusing errors. For instance, if you callAssert::directory('invalid/path')
then the reported error will be:Additionally, the messages for these assertions were either technically or grammatically incorrect.