use EventSauce\EventSourcing\AggregateRootRepository;
9
use EventSauce\EventSourcing\InMemoryMessageRepository;
10
11
class EventStager
12
{
13
/**
14
* @var AggregateRootId
15
*/
16
private $id;
17
18
/**
19
* @var AggregateRootRepository
20
*/
21
private $repository;
22
23
/**
24
* @var AggregateRootTestCase
25
*/
26
private $testCase;
27
28
/**
29
* @var InMemoryMessageRepository
30
*/
31
private $messageRepository;
32
33
1
public function __construct(AggregateRootId $id, InMemoryMessageRepository $messageRepository, AggregateRootRepository $repository, AggregateRootTestCase $testCase)
34
{
35
1
$this->id = $id;
36
1
$this->repository = $repository;
37
1
$this->testCase = $testCase;
38
1
$this->messageRepository = $messageRepository;
39
1
}
40
41
1
public function stage(object ...$events): AggregateRootTestCase