diff options
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/tests/phpunit/Action/EvaluateConditionTest.php')
-rw-r--r-- | www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/tests/phpunit/Action/EvaluateConditionTest.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/tests/phpunit/Action/EvaluateConditionTest.php b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/tests/phpunit/Action/EvaluateConditionTest.php new file mode 100644 index 00000000..3726042f --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/tests/phpunit/Action/EvaluateConditionTest.php @@ -0,0 +1,38 @@ +<?php + +namespace Civi\Test\Api4\Action; + +use Civi\Api4\MockBasicEntity; +use Civi\Test\Api4\UnitTestCase; + +/** + * @group headless + */ +class EvaluateConditionTest extends UnitTestCase { + + public function testEvaluateCondition() { + $action = MockBasicEntity::get(); + $reflection = new \ReflectionClass($action); + $method = $reflection->getMethod('evaluateCondition'); + $method->setAccessible(TRUE); + + $data = [ + 'nada' => 0, + 'uno' => 1, + 'dos' => 2, + 'apple' => 'red', + 'banana' => 'yellow', + 'values' => ['one' => 1, 'two' => 2, 'three' => 3], + ]; + + $this->assertFalse($method->invoke($action, '$uno > $dos', $data)); + $this->assertTrue($method->invoke($action, '$uno < $dos', $data)); + $this->assertTrue($method->invoke($action, '$apple == "red" && $banana != "red"', $data)); + $this->assertFalse($method->invoke($action, '$apple == "red" && $banana != "yellow"', $data)); + $this->assertTrue($method->invoke($action, '$values.one == $uno', $data)); + $this->assertTrue($method->invoke($action, '$values.one + $dos == $values.three', $data)); + $this->assertTrue($method->invoke($action, 'empty($nada)', $data)); + $this->assertFalse($method->invoke($action, 'empty($values)', $data)); + } + +} |