diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 0000000..86679d2 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,22 @@ + + + + ./tests/ + + + + + ./src/ + + + diff --git a/tests/AggregateRootTest.php b/tests/AggregateRootTest.php index f0dc305..06468f7 100644 --- a/tests/AggregateRootTest.php +++ b/tests/AggregateRootTest.php @@ -11,6 +11,7 @@ namespace Prooph\EventSourcingTest; +use Prooph\EventSourcingTest\Mock\BrokenUser; use Prooph\EventSourcingTest\Mock\User; /** @@ -49,6 +50,16 @@ public function it_applies_event_by_calling_appropriate_event_handler() $this->assertEquals(2, $userNameChangedEvent->version()); } + /** + * @test + * @expectedException RuntimeException + * @expectedExceptionMessage Missing event handler method whenUserCreated for aggregate root Prooph\EventSourcingTest\Mock\BrokenUser + */ + public function it_throws_exception_when_no_handler_on_aggregate() + { + BrokenUser::nameNew('John'); + } + /** * @test */ diff --git a/tests/Prooph/EventSourcingTest/Mock/BrokenUser.php b/tests/Prooph/EventSourcingTest/Mock/BrokenUser.php new file mode 100644 index 0000000..2997692 --- /dev/null +++ b/tests/Prooph/EventSourcingTest/Mock/BrokenUser.php @@ -0,0 +1,85 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + * + * Date: 18.04.14 - 00:04 + */ + +namespace Prooph\EventSourcingTest\Mock; + +use Prooph\EventSourcing\AggregateChanged; +use Prooph\EventSourcing\AggregateRoot; +use Rhumsaa\Uuid\Uuid; + +/** + * Class BrokenUser + * + * @package Prooph\EventStoreTest\Mock + * @author Alexander Miertsch + */ +class BrokenUser extends AggregateRoot +{ + /** + * @var string + */ + protected $id; + + /** + * @var string + */ + protected $name; + + public static function nameNew($name) + { + $id = Uuid::uuid4()->toString(); + $instance = new self(); + + $instance->recordThat(UserCreated::occur($id, ['id' => $id, 'name' => $name])); + + return $instance; + } + + /** + * @param AggregateChanged[] $historyEvents + * @return User + */ + public static function fromHistory(array $historyEvents) + { + return self::reconstituteFromHistory($historyEvents); + } + /** + * @return string + */ + public function id() + { + return $this->id; + } + + /** + * @return string + */ + public function name() + { + return $this->name; + } + + /** + * @return \Prooph\EventSourcing\AggregateChanged[] + */ + public function accessRecordedEvents() + { + return $this->popRecordedEvents(); + } + + /** + * @return string representation of the unique identifier of the aggregate root + */ + protected function aggregateId() + { + return $this->id(); + } +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php deleted file mode 100644 index b4987b0..0000000 --- a/tests/bootstrap.php +++ /dev/null @@ -1,13 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * - * Date: 08.03.14 - 15:47 - */ -require_once __DIR__ . '/../vendor/autoload.php'; - -chdir(__DIR__); \ No newline at end of file diff --git a/tests/phpunit.xml.dist b/tests/phpunit.xml.dist deleted file mode 100644 index c066f7d..0000000 --- a/tests/phpunit.xml.dist +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - . - - - \ No newline at end of file