From 4a72e039cb666e6785260ec0af5da0f67b868217 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Wed, 22 Feb 2023 14:17:51 +0100
Subject: [PATCH] tests: add some tests for the new isNullOrEmpty()

and also implement it in the helper object
---
 src/ExpressionLanguage/ExpressionExtension.php | 5 +++++
 tests/ExpressionLanguageTest.php               | 6 ++++++
 2 files changed, 11 insertions(+)

diff --git a/src/ExpressionLanguage/ExpressionExtension.php b/src/ExpressionLanguage/ExpressionExtension.php
index 4eb5585..a6ee1b9 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 ef09df2..b627155 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("")'));
     }
 }
-- 
GitLab