/** * Add a new constraint for a given field. * @param $type a type * @param $field a field name * @param $c the constraint * @return array a map containing all validation constraints for this type. */ public function addValidationConstraint($type, $field, Constraint $c) { if ($type == null || $field == null || $c == null) { return array(); } return $this->getEntity($this->invokePut("_constraints/" . $type . "/" . $field . "/" . $c->getName(), $c->getPayload())); }
public function testValidationConstraints() { // Validations $kittenType = "kitten"; $constraints = $this->pc->validationConstraints(); $this->assertFalse(empty($constraints)); $this->assertTrue(array_key_exists("app", $constraints)); $this->assertTrue(array_key_exists("user", $constraints)); $constraint = $this->pc->validationConstraints("app"); $this->assertFalse(empty($constraint)); $this->assertTrue(array_key_exists("app", $constraint)); $this->assertEquals(1, sizeof($constraint)); $this->pc->addValidationConstraint($kittenType, "paws", Constraint::required()); $constraint = $this->pc->validationConstraints($kittenType); $this->assertTrue(array_key_exists("paws", $constraint[$kittenType])); $ct = new ParaObject("felix"); $ct->setType($kittenType); $ct2 = null; try { // validation fails $ct2 = $this->pc->create($ct); } catch (\Exception $e) { } $this->assertNull($ct2); $ct->paws = "4"; $this->assertNotNull($this->pc->create($ct)); $this->pc->removeValidationConstraint($kittenType, "paws", "required"); $constraint = $this->pc->validationConstraints($kittenType); $this->assertTrue(empty($constraint)); $this->assertFalse(array_key_exists($kittenType, $constraint)); }