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

eliashaeussler / composer-update-check / 15127653356

19 May 2025 08:30PM UTC coverage: 20.538%. First build
15127653356

Pull #130

github

web-flow
[TASK] Update cuyz/valinor to v1.16.1

| datasource | package      | from   | to     |
| ---------- | ------------ | ------ | ------ |
| packagist  | cuyz/valinor | 1.15.0 | 1.16.1 |
Pull Request #130: [!!!][FEATURE] Modernize plugin

356 of 1832 new or added lines in 57 files covered. (19.43%)

382 of 1860 relevant lines covered (20.54%)

1.11 hits per line

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

93.55
/src/Entity/Result/UpdateCheckResult.php
1
<?php
2

3
declare(strict_types=1);
4

5
/*
6
 * This file is part of the Composer package "eliashaeussler/composer-update-check".
7
 *
8
 * Copyright (C) 2020-2025 Elias Häußler <elias@haeussler.dev>
9
 *
10
 * This program is free software: you can redistribute it and/or modify
11
 * it under the terms of the GNU General Public License as published by
12
 * the Free Software Foundation, either version 3 of the License, or
13
 * (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22
 */
23

24
namespace EliasHaeussler\ComposerUpdateCheck\Entity\Result;
25

26
use EliasHaeussler\ComposerUpdateCheck\Entity;
27

28
/**
29
 * UpdateCheckResult.
30
 *
31
 * @author Elias Häußler <elias@haeussler.dev>
32
 * @license GPL-3.0-or-later
33
 */
34
final class UpdateCheckResult
35
{
36
    /**
37
     * @var list<Entity\Package\OutdatedPackage>
38
     */
39
    private readonly array $outdatedPackages;
40

41
    /**
42
     * @var list<Entity\Package\ExcludedPackage>
43
     */
44
    private readonly array $excludedPackages;
45

46
    /**
47
     * @param list<Entity\Package\OutdatedPackage> $outdatedPackages
48
     * @param list<Entity\Package\ExcludedPackage> $excludedPackages
49
     */
50
    public function __construct(
8✔
51
        array $outdatedPackages,
52
        array $excludedPackages = [],
53
        private readonly ?Entity\Package\InstalledPackage $rootPackage = null,
54
    ) {
55
        $this->outdatedPackages = $this->sortPackages($outdatedPackages);
8✔
56
        $this->excludedPackages = $this->sortPackages($excludedPackages);
8✔
57
    }
58

59
    /**
60
     * @return list<Entity\Package\OutdatedPackage>
61
     */
62
    public function getOutdatedPackages(): array
1✔
63
    {
64
        return $this->outdatedPackages;
1✔
65
    }
66

67
    public function hasOutdatedPackages(): bool
2✔
68
    {
69
        return [] !== $this->outdatedPackages;
2✔
70
    }
71

72
    /**
73
     * @return list<Entity\Package\ExcludedPackage>
74
     */
75
    public function getExcludedPackages(): array
1✔
76
    {
77
        return $this->excludedPackages;
1✔
78
    }
79

NEW
80
    public function getRootPackage(): ?Entity\Package\InstalledPackage
×
81
    {
NEW
82
        return $this->rootPackage;
×
83
    }
84

85
    /**
86
     * @return list<Entity\Security\SecurityAdvisory>
87
     */
88
    public function getSecurityAdvisories(): array
1✔
89
    {
90
        $securityAdvisories = [];
1✔
91

92
        foreach ($this->outdatedPackages as $outdatedPackage) {
1✔
93
            foreach ($outdatedPackage->getSecurityAdvisories() as $securityAdvisory) {
1✔
94
                $securityAdvisories[] = $securityAdvisory;
1✔
95
            }
96
        }
97

98
        return $securityAdvisories;
1✔
99
    }
100

101
    /**
102
     * @return list<Entity\Package\OutdatedPackage>
103
     */
104
    public function getInsecureOutdatedPackages(): array
3✔
105
    {
106
        $insecurePackages = [];
3✔
107

108
        foreach ($this->outdatedPackages as $outdatedPackage) {
3✔
109
            if ($outdatedPackage->isInsecure()) {
3✔
110
                $insecurePackages[] = $outdatedPackage;
2✔
111
            }
112
        }
113

114
        return $insecurePackages;
3✔
115
    }
116

117
    public function hasInsecureOutdatedPackages(): bool
2✔
118
    {
119
        return [] !== $this->getInsecureOutdatedPackages();
2✔
120
    }
121

122
    /**
123
     * @template T of Entity\Package\Package
124
     *
125
     * @param list<T> $packages
126
     *
127
     * @return list<T>
128
     */
129
    private function sortPackages(array $packages): array
8✔
130
    {
131
        usort(
8✔
132
            $packages,
8✔
133
            static fn (Entity\Package\Package $a, Entity\Package\Package $b) => strcmp($a->getName(), $b->getName()),
8✔
134
        );
8✔
135

136
        return $packages;
8✔
137
    }
138
}
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