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

JBZoo / CI-Report-Converter / 6116586974

03 Sep 2023 10:00PM UTC coverage: 94.375% (-0.007%) from 94.382%
6116586974

push

github

web-flow
Immutable jbzoo/data (#39)

3 of 3 new or added lines in 3 files covered. (100.0%)

1426 of 1511 relevant lines covered (94.37%)

28.38 hits per line

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

83.33
/src/Formats/Source/SourceCase.php
1
<?php
2

3
/**
4
 * JBZoo Toolbox - CI-Report-Converter.
5
 *
6
 * This file is part of the JBZoo Toolbox project.
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 *
10
 * @license    MIT
11
 * @copyright  Copyright (C) JBZoo.com, All rights reserved.
12
 * @see        https://github.com/JBZoo/CI-Report-Converter
13
 */
14

15
declare(strict_types=1);
16

17
namespace JBZoo\CIReportConverter\Formats\Source;
18

19
use JBZoo\CIReportConverter\Formats\AbstractNode;
20

21
final class SourceCase extends AbstractNode
22
{
23
    // Location
24
    public ?string $class     = null;
25
    public ?string $classname = null;
26
    public ?string $file      = null;
27
    public ?int    $line      = null;
28
    public ?int    $column    = null;
29

30
    // Output
31
    public ?string $stdOut = null;
32
    public ?string $errOut = null;
33

34
    // Test meta data
35
    public ?float  $time       = null;
36
    public ?int    $assertions = null;
37
    public ?string $actual     = null;
38
    public ?string $expected   = null;
39

40
    // Type of negative results
41
    public ?SourceCaseOutput $failure = null;
42
    public ?SourceCaseOutput $error   = null;
43
    public ?SourceCaseOutput $warning = null;
44
    public ?SourceCaseOutput $skipped = null;
45

46
    public function getTime(int $round = 6): ?string
47
    {
48
        return $this->time === null ? null : (string)\round($this->time, $round);
32✔
49
    }
50

51
    public function isError(): bool
52
    {
53
        return $this->error !== null;
44✔
54
    }
55

56
    public function isWarning(): bool
57
    {
58
        return $this->warning !== null;
44✔
59
    }
60

61
    public function isFailure(): bool
62
    {
63
        return $this->failure !== null;
44✔
64
    }
65

66
    public function isSkipped(): bool
67
    {
68
        return $this->skipped !== null;
24✔
69
    }
70

71
    public function isComparison(): bool
72
    {
73
        return $this->actual !== null && $this->expected !== null;
×
74
    }
75

76
    public function getMessage(): ?string
77
    {
78
        $message = null;
44✔
79
        if ($this->stdOut !== null) {
44✔
80
            $message = self::buildMessage([$this->name, $this->stdOut]);
24✔
81
        } elseif ($this->errOut !== null) {
44✔
82
            $message = self::buildMessage([$this->name, $this->errOut]);
×
83
        } elseif ($this->failure !== null) {
44✔
84
            $message = $this->failure->details !== ''
40✔
85
                ? self::buildMessage([$this->failure->details])
40✔
86
                : self::buildMessage([$this->failure->message]);
×
87
        } elseif ($this->error !== null) {
28✔
88
            $message = $this->error->details !== ''
24✔
89
                ? self::buildMessage([$this->error->details])
24✔
90
                : self::buildMessage([$this->error->message]);
×
91
        } elseif ($this->warning !== null) {
28✔
92
            $message = $this->warning->details !== ''
28✔
93
                ? self::buildMessage([$this->warning->details])
28✔
94
                : self::buildMessage([$this->warning->message]);
×
95
        } elseif ($this->skipped !== null) {
24✔
96
            $message = $this->skipped->details !== ''
24✔
97
                ? self::buildMessage([$this->skipped->details])
24✔
98
                : self::buildMessage([$this->skipped->message]);
×
99
            $message ??= 'Skipped';
24✔
100
        }
101

102
        return $message !== '' ? $message : null;
44✔
103
    }
104

105
    private static function buildMessage(array $parts): ?string
106
    {
107
        $parts   = \array_filter($parts, '\is_string');
44✔
108
        $parts   = \array_map('\trim', $parts);
44✔
109
        $parts   = \array_filter($parts);
44✔
110
        $parts   = \array_unique($parts);
44✔
111
        $message = \implode("\n", $parts);
44✔
112
        $message = \trim($message);
44✔
113

114
        return $message !== '' ? $message : null;
44✔
115
    }
116
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc