public function _executeTestsNormal($di) { //Normal foreign keys $robotsParts = new RobotsParts(); $robotsParts->robots_id = 1; $robotsParts->parts_id = 100; $this->assertFalse($robotsParts->save()); $messages = array(0 => Phalcon\Mvc\Model\Message::__set_state(array('_type' => 'ConstraintViolation', '_message' => 'Value of field "parts_id" does not exist on referenced table', '_field' => 'parts_id'))); $this->assertEquals($robotsParts->getMessages(), $messages); $robotsParts->robots_id = 100; $robotsParts->parts_id = 1; $this->assertFalse($robotsParts->save()); $messages = array(0 => Phalcon\Mvc\Model\Message::__set_state(array('_type' => 'ConstraintViolation', '_message' => 'The robot code does not exist', '_field' => 'robots_id'))); $this->assertEquals($robotsParts->getMessages(), $messages); //Reverse foreign keys $robot = Robots::findFirst(); $this->assertNotEquals($robot, false); $this->assertFalse($robot->delete()); $messages = array(0 => Phalcon\Mvc\Model\Message::__set_state(array('_type' => 'ConstraintViolation', '_message' => 'Record is referenced by model RobotsParts', '_field' => 'id'))); $this->assertEquals($robot->getMessages(), $messages); $part = Parts::findFirst(); $this->assertNotEquals($part, false); $this->assertFalse($part->delete()); $messages = array(0 => Phalcon\Mvc\Model\Message::__set_state(array('_type' => 'ConstraintViolation', '_message' => 'Parts cannot be deleted because is referenced by a Robot', '_field' => 'id'))); $this->assertEquals($part->getMessages(), $messages); }