diff --git a/src/ExpressionLanguage/ExpressionExtension.php b/src/ExpressionLanguage/ExpressionExtension.php index 4eb5585605975b32d82282fa1933907fc101f219..a6ee1b9fc7fd20b2b0acbb8eb93e022b8a654b18 100644 --- a/src/ExpressionLanguage/ExpressionExtension.php +++ b/src/ExpressionLanguage/ExpressionExtension.php @@ -139,4 +139,9 @@ class ExpressionExtension return $filteredResult; } + + public static function isNullOrEmpty($value) + { + return $value === null || $value === ''; + } } diff --git a/tests/ExpressionLanguageTest.php b/tests/ExpressionLanguageTest.php index ef09df286b6dd20ba198d3a83ce1e4714a74af2a..b627155ee1a61468ff965ef9cfa249dd0289a547 100644 --- a/tests/ExpressionLanguageTest.php +++ b/tests/ExpressionLanguageTest.php @@ -108,6 +108,9 @@ class ExpressionLanguageTest extends TestCase $this->assertSame('foo', $lang->evaluate('substr("foobar", 0, 3)')); $this->assertSame(1, $lang->evaluate('strpos("foobar", "oo")')); $this->assertSame(6, $lang->evaluate('strlen("foobar")')); + $this->assertFalse($lang->evaluate('isNullOrEmpty("foobar")')); + $this->assertTrue($lang->evaluate('isNullOrEmpty(null)')); + $this->assertTrue($lang->evaluate('isNullOrEmpty("")')); $this->assertTrue($lang->evaluate('relay.str_starts_with("foo", "fo")')); $this->assertFalse($lang->evaluate('relay.str_starts_with("foo", "xo")')); @@ -116,5 +119,8 @@ class ExpressionLanguageTest extends TestCase $this->assertSame('foo', $lang->evaluate('relay.substr("foobar", 0, 3)')); $this->assertSame(1, $lang->evaluate('relay.strpos("foobar", "oo")')); $this->assertSame(6, $lang->evaluate('relay.strlen("foobar")')); + $this->assertFalse($lang->evaluate('relay.isNullOrEmpty("foobar")')); + $this->assertTrue($lang->evaluate('relay.isNullOrEmpty(null)')); + $this->assertTrue($lang->evaluate('relay.isNullOrEmpty("")')); } }