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

RonasIT / laravel-helpers / 26278388934

22 May 2026 08:56AM UTC coverage: 86.214% (+0.1%) from 86.087%
26278388934

Pull #287

github

web-flow
Merge 7a1d4a1b7 into 01ab75628
Pull Request #287: feat: implement queue assertion helpers

19 of 20 new or added lines in 1 file covered. (95.0%)

1207 of 1400 relevant lines covered (86.21%)

17.29 hits per line

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

95.83
/src/Traits/TestingTrait.php
1
<?php
2

3
namespace RonasIT\Support\Traits;
4

5
use Illuminate\Support\Arr;
6
use Illuminate\Support\Facades\Queue;
7
use ReflectionClass;
8

9
trait TestingTrait
10
{
11
    use FixturesTrait;
12
    use MailsMockTrait;
13
    use MockTrait;
14

15
    protected function assertExceptionThrew(
16
        string $expectedClassName,
17
        string $expectedMessage,
18
        bool $isStrict = true,
19
    ): void {
20
        $this->expectException($expectedClassName);
4✔
21

22
        $expectedMessage = preg_quote($expectedMessage, '/');
4✔
23

24
        $expectedMessage = ($isStrict) ? "^{$expectedMessage}$" : $expectedMessage;
4✔
25

26
        $this->expectExceptionMessageMatches("/{$expectedMessage}/");
4✔
27
    }
28

29
    protected function assertQueueEqualsFixture(string $fixture, bool $exportMode = false): void
30
    {
31
        $actualData = [];
5✔
32

33
        foreach (Queue::pushedJobs() as $namespace => $jobs) {
5✔
34
            $actualData[$namespace] = Arr::map($jobs, function ($job) {
5✔
35
                $job = $this->getJobObject($job);
5✔
36

37
                return $this->getObjectAttributes($job);
5✔
38
            });
5✔
39
        }
40

41
        $this->assertEqualsFixture("queue_states/{$fixture}", $actualData, $exportMode);
5✔
42
    }
43

44
    protected function getJobObject(array $job)
45
    {
46
        if (is_object($job['job'])) {
5✔
47
            return $job['job'];
2✔
48
        }
49

50
        if (is_array($job['data'])) {
3✔
51
            return new $job['job'](...$job['data']);
1✔
52
        }
53

54
        return new $job['job']($job['data']);
2✔
55
    }
56

57
    protected function assertQueueEmpty(): void
58
    {
59
        $this->assertEquals([], Queue::pushedJobs(), 'Failed assert that faked queue is empty.');
1✔
60
    }
61

62
    protected function getObjectAttributes(object $object): array
63
    {
64
        $result = [];
5✔
65

66
        $properties = (new ReflectionClass($object))->getProperties();
5✔
67

68
        foreach ($properties as $property) {
5✔
69
            $result[$property->getName()] = $property->isInitialized($object)
5✔
70
                ? $property->getValue($object)
5✔
NEW
71
                : null;
×
72
        }
73

74
        return json_decode(json_encode($result), true);
5✔
75
    }
76
}
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

© 2026 Coveralls, Inc