function RulesTestCase::testRuleCreation
Tests creating a rule and iterating over the rule elements.
File
-
tests/
rules.test, line 69
Class
- RulesTestCase
- Rules test cases.
Code
public function testRuleCreation() {
$rule = $this->createTestRule();
$rule->integrityCheck();
$rule->execute();
$log = RulesLog::logger()->get();
$last = array_pop($log);
$last = array_pop($log);
$last = array_pop($log);
$this->assertEqual($last[0], 'action called', 'Action called');
RulesLog::logger()->checkLog();
// Make sure condition and action iterators are working.
$it = new RecursiveIteratorIterator($rule->conditions(), RecursiveIteratorIterator::SELF_FIRST);
$this->assertEqual(iterator_count($it), 8, 'Iterated over all conditions and condition containers');
$it = new RecursiveIteratorIterator($rule->conditions());
$this->assertEqual(iterator_count($it), 6, 'Iterated over all conditions');
$this->assertEqual(iterator_count($rule->actions()), 1, 'Iterated over all actions');
$this->assertEqual(iterator_count($rule->elements()), 10, 'Iterated over all rule elements.');
// Test getting dependencies and the integrity check.
$rule->integrityCheck();
$this->assertTrue($rule->dependencies() === array(
'rules_test',
), 'Dependencies correctly returned.');
}