formula tests
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user