/**
  * @param TestCommandOne $command
  *
  * @return TestCommandOne
  */
 public static function testFirstCommand(TestCommandOne $command)
 {
     self::$firstCommandCalled = true;
     $aggregate = new TestAggregateRoot();
     $aggregate->run();
     $command->addAggregateRoot($aggregate);
     return $command;
 }
 public function testPullEvents()
 {
     $aggregate = new TestAggregateRoot();
     $events = $aggregate->pullEvents();
     $this->assertCount(0, $events, 'Should not contain any event initially.');
     $aggregate->run();
     $events = $aggregate->pullEvents();
     $this->assertCount(1, $events);
     $event = array_shift($events);
     $this->assertEquals(TestEvent::class, get_class($event));
     $this->assertEmpty($aggregate->pullEvents());
 }