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

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

18 Jul 2026 01:22AM UTC coverage: 44.717% (+23.2%) from 21.548%
29625079075

Pull #19

github

claude
Extract repeated message-assembly logic into MessageFormatter

Six exception classes duplicated the same "indent a sibling exception's
message and join under a bullet" idiom (InvalidItemException,
InvalidTupleException, InvalidAdditionalPropertiesException,
InvalidPatternPropertiesException, InvalidComposedValueException,
ConditionalException); two more had byte-for-byte identical logic for a
different case, flattening one arbitrary nested exception's whole message
into bullets one level deeper (NestedObjectException,
InvalidSchemaDependencyException); three more repeated a "quote each item
and join" idiom for flat lists (InvalidTypeException, AdditionalProperties-
Exception, InvalidPropertyDependencyException).

Renamed ValueFormatter to MessageFormatter and added bulletList(),
flattenNestedMessage() and quotedList() alongside the existing format(),
so every exception class assembling a message reaches for the same shared
helpers instead of re-implementing str_replace/implode/preg_replace calls.

Purely a refactor: every call site's exact output is unchanged (verified
via the full existing suite, no test assertions needed updating), plus new
MessageFormatterTest coverage for the extracted methods directly.

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)

101 of 138 new or added lines in 39 files covered. (73.19%)

2 existing lines in 2 files now uncovered.

364 of 814 relevant lines covered (44.72%)

1.8 hits per line

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

0.0
/src/Exception/String/ContentException.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace PHPModelGenerator\Exception\String;
6

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

10
class ContentException extends ValidationException
11
{
12
    public function __construct(
×
13
        $providedValue,
14
        string $propertyName,
15
        string $jsonPointer,
16
        protected ?string $expectedMediaType,
17
        protected ?string $expectedEncoding,
18
        ?Throwable $previous = null,
19
    ) {
20
        $description = implode(', ', array_filter([
×
NEW
21
            $this->expectedMediaType ? "mediaType '{$this->expectedMediaType}'" : null,
×
NEW
22
            $this->expectedEncoding ? "encoding '{$this->expectedEncoding}'" : null,
×
UNCOV
23
        ]));
×
24

25
        parent::__construct(
×
NEW
26
            "Value for '$propertyName' does not match the expected content ($description)",
×
27
            $propertyName,
×
28
            $providedValue,
×
29
            $jsonPointer,
×
30
            0,
×
31
            $previous,
×
32
        );
×
33
    }
34

35
    public function getExpectedMediaType(): ?string
×
36
    {
37
        return $this->expectedMediaType;
×
38
    }
39

40
    public function getExpectedEncoding(): ?string
×
41
    {
42
        return $this->expectedEncoding;
×
43
    }
44
}
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