Passed
Pull Request — master (#84)
by Frank
17:17 queued 07:16
created

DummyAggregate::applyDummyIncrementingHappened()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EventSauce\EventSourcing\TestUtilities\TestingAggregates;
6
7
use EventSauce\EventSourcing\AggregateRoot;
8
use EventSauce\EventSourcing\AggregateRootBehaviour;
9
use EventSauce\EventSourcing\DummyAggregateRootId;
10
11
final class DummyAggregate implements AggregateRoot
12
{
13
    use AggregateRootBehaviour;
14
15
    private int $incrementedNumber = 0;
16
17
    public static function create(DummyAggregateRootId $aggregateRootId): DummyAggregate
18
    {
19
        $aggregate = new static($aggregateRootId);
20
        $aggregate->recordThat(new AggregateWasInitiated());
21
22
        return $aggregate;
23
    }
24
25
    protected function applyAggregateWasInitiated(): void
26
    {
27
        // cool
28
    }
29
30
    public function performDummyTask(): void
31
    {
32
        $this->recordThat(new DummyTaskWasExecuted());
33
    }
34
35
    public function increment(): void
36
    {
37
        $this->recordThat(
38
            new DummyIncrementingHappened(
39
                $this->incrementedNumber + 1
40
            )
41
        );
42
    }
43
44
    protected function applyDummyIncrementingHappened(DummyIncrementingHappened $event): void
45
    {
46
        $this->incrementedNumber = $event->number();
47
    }
48
49
    protected function applyDummyTaskWasExecuted(/* @scrutinizer ignore-unused */ DummyTaskWasExecuted $event): void
50
    {
51
    }
52
53
    public function dontDoAnything(): void
54
    {
55
        // not doing anything.
56
    }
57
58
    public function throwAnException(): void
59
    {
60
        throw new DummyException();
61
    }
62
}
63