Sanpi\Behatch\Json\JsonSchema::validate PHP Method

validate() public method

public validate ( Json $json, JsonSchema\Validator $validator )
$json Json
$validator JsonSchema\Validator
    public function validate(Json $json, Validator $validator)
    {
        $validator->check($json->getContent(), $this->getContent());
        if (!$validator->isValid()) {
            $msg = "JSON does not validate. Violations:" . PHP_EOL;
            foreach ($validator->getErrors() as $error) {
                $msg .= sprintf("  - [%s] %s" . PHP_EOL, $error['property'], $error['message']);
            }
            throw new \Exception($msg);
        }
        return true;
    }

Usage Example

Example #1
0
    public function test_should_throw_exception_for_incorrect_json()
    {
        $this->given($schema = new TestedClass('{}'), $json = new \Sanpi\Behatch\Json\Json('{}'), $validator = new \mock\JsonSchema\Validator(), $validator->getMockController()->check = false, $validator->getMockController()->getErrors = array(array('property' => 'foo', 'message' => 'invalid'), array('property' => 'bar', 'message' => 'not found')))->exception(function () use($schema, $json, $validator) {
            $schema->validate($json, $validator);
        })->hasMessage(<<<ERROR
JSON does not validate. Violations:
  - [foo] invalid
  - [bar] not found

ERROR
);
    }