/** @test */
 public function it_handles_email_address_change()
 {
     $userId = new UserId(11);
     $oldEmail = new EmailAddress('*****@*****.**');
     $newEmail = new EmailAddress('*****@*****.**');
     $user = new User($userId, new Name('Splinter'), $oldEmail);
     $command = new ChangeUserEmail($userId, $newEmail);
     $repository = $this->getUserRepositoryMock();
     $repository->expects($this->once())->method('find')->willReturn($user);
     $interceptedMessage = null;
     $eventBus = $this->getEventBusMock();
     $eventBus->expects($this->once())->method('handle')->willReturnCallback(function ($message) use(&$interceptedMessage) {
         $interceptedMessage = $message;
     });
     $commandHandler = new UserHandler($repository, $eventBus);
     $commandHandler->handleChangeUserEmail($command);
     // change should trigger event
     $this->assertInstanceOf('AppBundle\\Messages\\Events\\ChangedUserEmail', $interceptedMessage);
     $this->assertTrue($userId->equals($interceptedMessage->userId()));
     // finally check if address changed
     $this->assertTrue($user->getEmail()->equals($newEmail));
 }
Exemple #2
0
 /** @test */
 public function it_is_equal_to_other_instance_with_the_same_id()
 {
     $id1 = new UserId(1234);
     $id2 = new UserId(1234);
     $this->assertTrue($id1->equals($id2));
 }