Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
88.89% covered (warning)
88.89%
8 / 9
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
ValidationStatus
88.89% covered (warning)
88.89%
8 / 9
66.67% covered (warning)
66.67%
2 / 3
5.03
0.00% covered (danger)
0.00%
0 / 1
 __construct
85.71% covered (warning)
85.71%
6 / 7
0.00% covered (danger)
0.00%
0 / 1
3.03
 isValid
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getErrors
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * WikiLambda interface for validation status
4 *
5 * @file
6 * @copyright 2020– Abstract Wikipedia team; see AUTHORS.txt
7 * @license MIT
8 */
9
10namespace MediaWiki\Extension\WikiLambda\Validation;
11
12use MediaWiki\Extension\WikiLambda\ZErrorFactory;
13use MediaWiki\Extension\WikiLambda\ZObjects\ZError;
14use Opis\JsonSchema\ValidationError;
15use Opis\JsonSchema\ValidationResult;
16
17class ValidationStatus {
18
19    /**
20     * @var bool
21     */
22    private $isValid;
23
24    /**
25     * @var ZError|null
26     */
27    private $errors = null;
28
29    /**
30     * @var ValidationError[]
31     */
32    private $parserErrors = [];
33
34    /**
35     * @param ValidationResult $validationResult
36     */
37    public function __construct( $validationResult ) {
38        $this->isValid = $validationResult->isValid();
39
40        if ( $validationResult->hasErrors() ) {
41            $this->parserErrors = $validationResult->getErrors();
42            $errors = ZErrorFactory::buildStructureValidationZError( $this->parserErrors );
43            if ( $errors !== false ) {
44                $this->errors = $errors;
45            } else {
46                $this->errors = ZErrorFactory::createUnknownValidationError( 'Unidentified error' );
47            }
48        }
49    }
50
51    /**
52     * @return bool
53     */
54    public function isValid(): bool {
55        return $this->isValid;
56    }
57
58    /**
59     * @return ZError|null
60     */
61    public function getErrors() {
62        return $this->errors;
63    }
64}