コード例 #1
0
 function it_does_not_add_organization_member_to_organization_because_it_is_not_allowed(AddOrganizationMemberToOrganizationCommand $command, OrganizationRepository $repository, Organization $organization)
 {
     $organizationId = OrganizationId::generate('organization-id');
     $command->organizationId()->shouldBeCalled()->willReturn('organization-id');
     $repository->organizationOfId($organizationId)->shouldBeCalled()->willReturn($organization);
     $command->adderId()->shouldBeCalled()->willReturn('adder-id');
     $organization->isOwner(UserId::generate('adder-id'))->shouldBeCalled()->willReturn(false);
     $this->shouldThrow(UnauthorizedOrganizationActionException::class)->during__invoke($command);
 }
コード例 #2
0
 public function __invoke(AddOrganizationMemberToOrganizationCommand $command)
 {
     $organization = $this->repository->organizationOfId(OrganizationId::generate($command->organizationId()));
     if (!$organization instanceof Organization) {
         throw new OrganizationDoesNotExistException();
     }
     if (!$organization->isOwner(UserId::generate($command->adderId()))) {
         throw new UnauthorizedOrganizationActionException();
     }
     $organization->addOrganizationMember(UserId::generate($command->userId()));
     $this->repository->persist($organization);
 }