public function shouldThrowExceptionFromAppliedRule()
{
$from = new State('a');
$to = new State('b');
$rule = 'izzum\\rules\\ExceptionRule';
$command = 'izzum\\command\\NullCommand';
$object = new Context(new Identifier(Identifier::NULL_ENTITY_ID, Identifier::NULL_STATEMACHINE));
$transition = new Transition($from, $to, null, $rule, $command);
try {
$transition->can($object);
$this->fail('should not come here');
} catch (Exception $e) {
$this->assertEquals(Exception::RULE_APPLY_FAILURE, $e->getCode());
$this->assertEquals(ExceptionInRulePackage::CODE_GENERAL, $e->getPrevious()->getCode());
}
$transition->process($object);
}