formula tests

This commit is contained in:
yuri
2019-08-29 12:49:57 +03:00
parent 797fab769f
commit 045264d95f
2 changed files with 71 additions and 1 deletions
@@ -64,8 +64,13 @@ class CountType extends \Espo\Core\Formula\Functions\Base
$selectManager = $this->getInjection('selectManagerFactory')->create($entityType);
$selectParams = $selectManager->getEmptySelectParams();
if ($filter) {
$selectManager->applyFilter($filter, $selectParams);
if (is_string($filter)) {
$selectManager->applyFilter($filter, $selectParams);
} else {
throw new Error("Formula record\\count: Bad filter.");
}
}
return $this->getInjection('entityManager')->getRepository($entityType)->count($selectParams);
@@ -94,4 +94,69 @@ class FormulaTest extends \tests\integration\Core\BaseTestCase
$result = $formulaManager->run($script, $contact);
$this->assertEquals(40, $result);
}
public function testRecordExists()
{
$em = $this->getContainer()->get('entityManager');
$em->createEntity('Meeting', [
'status' => 'Held',
]);
$em->createEntity('Meeting', [
'status' => 'Planned',
]);
$fm = $this->getContainer()->get('formulaManager');
$script = "record\\exists('Meeting', 'status', 'Held')";
$result = $fm->run($script, $contact);
$this->assertTrue($result);
$script = "record\\exists('Meeting', 'status', 'Not Held')";
$result = $fm->run($script, $contact);
$this->assertFalse($result);
$script = "record\\exists('Meeting', 'status', list('Held', 'Planned'))";
$result = $fm->run($script, $contact);
$this->assertTrue($result);
$script = "record\\exists('Meeting', 'status', list('Not Held'))";
$result = $fm->run($script, $contact);
$this->assertFalse($result);
}
public function testRecordCount()
{
$em = $this->getContainer()->get('entityManager');
$em->createEntity('Meeting', [
'status' => 'Held',
]);
$em->createEntity('Meeting', [
'status' => 'Planned',
]);
$fm = $this->getContainer()->get('formulaManager');
$script = "record\\count('Meeting', 'status', 'Held')";
$result = $fm->run($script, $contact);
$this->assertEquals(1, $result);
$script = "record\\count('Meeting', 'status', 'Not Held')";
$result = $fm->run($script, $contact);
$this->assertEquals(0, $result);
$script = "record\\count('Meeting', 'status', list('Held', 'Planned'))";
$result = $fm->run($script, $contact);
$this->assertEquals(2, $result);
$script = "record\\count('Meeting', 'status', list('Not Held'))";
$result = $fm->run($script, $contact);
$this->assertEquals(0, $result);
$script = "record\\count('Meeting', 'planned')";
$result = $fm->run($script, $contact);
$this->assertEquals(1, $result);
}
}