-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Separate file/directory/exists assertions #291
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.