This could be when there are multiple steps or paths in rule execution and the client wants to know which one of those were executed after a rule->applies() call has been made. This will most probably happen in a rule where multipe business rules are combined or where there are multiple conditional paths.
Author: Rolf Vreijdenberger
Author: Richard Ruiter
Example #1
0
 public function testRuleResult()
 {
     $rule = new izzum\rules\True();
     $result = 'rule failed';
     $r = new RuleResult($rule, $result);
     $this->assertEquals($rule, $r->getRule());
     $this->assertEquals($result, $r->getResult());
     //a new rule
     $rule = new RuleResultRule();
     $this->assertFalse($rule->containsResult(RuleResultRule::RESULT_CONDITIONAL));
     $this->assertFalse($rule->hasResult());
     $rule->applies();
     $result = $rule->getResults();
     $result = $result[0];
     $this->assertEquals($rule, $result->getRule());
     $this->assertEquals(RuleResultRule::RESULT_CONDITIONAL, $result->getResult());
     $this->assertTrue($rule->containsResult(RuleResultRule::RESULT_CONDITIONAL));
     $this->assertTrue($rule->hasResult());
 }