Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
SchemaWrapper
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 validate
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * WikiLambda class wrapping a schema validator
4 *
5 * @file
6 * @copyright 2020– Abstract Wikipedia team; see AUTHORS.txt
7 * @license MIT
8 */
9
10namespace MediaWiki\Extension\WikiLambda\Validation;
11
12use Opis\JsonSchema\ISchema;
13use Opis\JsonSchema\ValidationResult;
14use Opis\JsonSchema\Validator;
15
16class SchemaWrapper {
17    /**
18     * @var ISchema
19     */
20    private $schema;
21
22    /**
23     * @var Validator
24     */
25    private $validator;
26
27    /**
28     * @param ISchema $schema
29     * @param Validator $validator
30     */
31    public function __construct( ISchema $schema, Validator $validator ) {
32        $this->schema = $schema;
33        $this->validator = $validator;
34    }
35
36    /**
37     * @param mixed $maybeValid JSON array-like object to validate
38     * @param int $maxErrors
39     * @return ValidationResult
40     */
41    public function validate( $maybeValid, $maxErrors = 1 ): ValidationResult {
42        return $this->validator->schemaValidation(
43            $maybeValid,
44            $this->schema,
45            $maxErrors
46        );
47    }
48}