• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wol-soft / php-json-schema-model-generator-production / 29625373753

18 Jul 2026 01:31AM UTC coverage: 45.055% (+23.5%) from 21.548%
29625373753

Pull #19

github

claude
Pluralize the composition match-count in exception messages

"matched 1 elements"/"matched 1 element but matched 1 elements" read
wrong for a singular count. AllOfException, NotException and OneOfException
now interpolate a pre-pluralized "N element(s)" clause (via a new
MessageFormatter::pluralize() helper) instead of a bare count spliced into
a fixed "elements" suffix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BZUchCwdY9cQFvyEXWnTZw
Pull Request #19: Fix nested composition indentation + add data-instance JSON pointer (issue #131)

107 of 144 new or added lines in 39 files covered. (74.31%)

2 existing lines in 2 files now uncovered.

369 of 819 relevant lines covered (45.05%)

1.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.25
/src/Exception/Generic/InvalidTypeException.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace PHPModelGenerator\Exception\Generic;
6

7
use PHPModelGenerator\Exception\MessageFormatter;
8
use PHPModelGenerator\Exception\ValidationException;
9

10
/**
11
 * Class InvalidTypeException
12
 *
13
 * @package PHPModelGenerator\Exception\Generic
14
 */
15
class InvalidTypeException extends ValidationException
16
{
17
    /**
18
     * PatternException constructor.
19
     *
20
     * @param $providedValue
21
     * @param array|string $expectedType
22
     */
23
    public function __construct($providedValue, string $propertyName, string $jsonPointer, protected $expectedType)
6✔
24
    {
25
        parent::__construct(
6✔
26
            sprintf(
6✔
27
                "Invalid type for '%s': requires %s, got '%s'",
6✔
28
                $propertyName,
6✔
29
                is_array($this->expectedType)
6✔
NEW
30
                    ? '[' . MessageFormatter::quotedList($this->expectedType) . ']'
×
31
                    : "'{$this->expectedType}'",
6✔
32
                is_object($providedValue) ? $providedValue::class : gettype($providedValue)
6✔
33
            ),
6✔
34
            $propertyName,
6✔
35
            $providedValue,
6✔
36
            $jsonPointer
6✔
37
        );
6✔
38
    }
39

40
    /**
41
     * @return array|string
42
     */
43
    public function getExpectedType()
×
44
    {
45
        return $this->expectedType;
×
46
    }
47
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc