Lines 100.00% 7 / 7
Functions and Methods 100.00% 4 / 4
Classes and Traits 100.00% 1 / 1
Name Lines Functions and Methods CRAP Classes and Traits
MaxItemsTrait 100.00% 7 / 7 100.00% 4 / 4 5 100.00% 1 / 1
 setMaxProcessItems 100.00% 1 / 1 100.00% 1 / 1 1
 incrementProcessedItems 100.00% 2 / 2 100.00% 1 / 1 1
 processed 100.00% 1 / 1 100.00% 1 / 1 1
 shouldProcessNext 100.00% 3 / 3 100.00% 1 / 1 2
1<?php
2
3declare(strict_types=1);
4
5namespace Tomaj\Hermes\Driver;
6
7trait MaxItemsTrait
8{
9    private int $processed = 0;
10
11    private int $maxProcessItems = 0;
12
13    public function setMaxProcessItems(int $count): void
14    {
15        $this->maxProcessItems = $count;
16    }
17
18    public function incrementProcessedItems(): int
19    {
20        $this->processed++;
21        return $this->processed;
22    }
23
24    public function processed(): int
25    {
26        return $this->processed;
27    }
28
29    public function shouldProcessNext(): bool
30    {
31        if ($this->maxProcessItems === 0) {
32            return true;
33        }
34        return $this->processed < $this->maxProcessItems;
35    }
36}