|
|
@@ -5,9 +5,9 @@ namespace App\Tests\Service\OnChange\Organization;
|
|
|
use App\Entity\Access\Access;
|
|
|
use App\Entity\Organization\Organization;
|
|
|
use App\Entity\Organization\Subdomain;
|
|
|
+use App\Message\Command\MailerCommand;
|
|
|
use App\Message\Command\Typo3\Typo3UpdateCommand;
|
|
|
-use App\Service\Access\Utils as AccessUtils;
|
|
|
-use App\Service\MailHub;
|
|
|
+use App\Service\Mailer\Model\SubdomainChangeModel;
|
|
|
use App\Service\OnChange\OnChangeContext;
|
|
|
use App\Service\OnChange\Organization\OnSubdomainChange;
|
|
|
use App\Service\Organization\Utils as OrganizationUtils;
|
|
|
@@ -17,27 +17,26 @@ use PHPUnit\Framework\MockObject\MockObject;
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
use Symfony\Component\Messenger\Envelope;
|
|
|
use Symfony\Component\Messenger\MessageBusInterface;
|
|
|
+use Symfony\Component\Security\Core\Security;
|
|
|
|
|
|
class OnSubdomainChangeTest extends TestCase
|
|
|
{
|
|
|
private OrganizationUtils $organizationUtils;
|
|
|
- private AccessUtils $accessUtils;
|
|
|
- private MailHub $mailHub;
|
|
|
+ private Security $security;
|
|
|
private BindFileService $bindFileService;
|
|
|
private MessageBusInterface $messageBus;
|
|
|
|
|
|
public function setUp():void
|
|
|
{
|
|
|
$this->organizationUtils = $this->getMockBuilder(OrganizationUtils::class)->disableOriginalConstructor()->getMock();
|
|
|
- $this->accessUtils = $this->getMockBuilder(AccessUtils::class)->disableOriginalConstructor()->getMock();
|
|
|
- $this->mailHub = $this->getMockBuilder(MailHub::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $this->security = $this->getMockBuilder(Security::class)->disableOriginalConstructor()->getMock();
|
|
|
$this->bindFileService = $this->getMockBuilder(BindFileService::class)->disableOriginalConstructor()->getMock();
|
|
|
$this->messageBus = $this->getMockBuilder(MessageBusInterface::class)->disableOriginalConstructor()->getMock();
|
|
|
}
|
|
|
|
|
|
private function makeOnSubdomainChangeMock(string $methodName): MockObject | OnSubdomainChange {
|
|
|
return $this->getMockBuilder(OnSubdomainChange::class)
|
|
|
- ->setConstructorArgs([$this->organizationUtils, $this->accessUtils, $this->mailHub, $this->bindFileService, $this->messageBus])
|
|
|
+ ->setConstructorArgs([$this->organizationUtils, $this->bindFileService, $this->messageBus, $this->security])
|
|
|
->setMethodsExcept([$methodName])
|
|
|
->getMock();
|
|
|
}
|
|
|
@@ -221,15 +220,32 @@ class OnSubdomainChangeTest extends TestCase
|
|
|
public function testSendEmailAfterSubdomainChange(): void {
|
|
|
$onSubdomainChange = $this->makeOnSubdomainChangeMock('sendEmailAfterSubdomainChange');
|
|
|
|
|
|
- $admin = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $subdomain = $this->getMockBuilder(Subdomain::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $subdomainChangeModel = $this->getMockBuilder(SubdomainChangeModel::class)->disableOriginalConstructor()->getMock();
|
|
|
|
|
|
- $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $onSubdomainChange
|
|
|
+ ->expects(self::once())
|
|
|
+ ->method('getMailModel')
|
|
|
+ ->with($subdomain)
|
|
|
+ ->willReturn($subdomainChangeModel);
|
|
|
|
|
|
- $subdomain = $this->getMockBuilder(Subdomain::class)->disableOriginalConstructor()->getMock();
|
|
|
- $subdomain->expects(self::once())->method('getSubdomain')->willReturn('mysubdomain');
|
|
|
- $subdomain->expects(self::exactly(3))->method('getOrganization')->willReturn($organization);
|
|
|
+ $this->messageBus
|
|
|
+ ->expects(self::once())
|
|
|
+ ->method('dispatch')
|
|
|
+ ->with(self::isInstanceOf(MailerCommand::class))
|
|
|
+ ->willReturn(new Envelope(new MailerCommand($subdomainChangeModel)));
|
|
|
+
|
|
|
+ $onSubdomainChange->sendEmailAfterSubdomainChange($subdomain);
|
|
|
+ }
|
|
|
|
|
|
- $this->accessUtils->expects(self::once())->method('findAdminFor')->with($organization)->willReturn($admin);
|
|
|
+ /**
|
|
|
+ * @see OnSubdomainChange::getMailModel()
|
|
|
+ */
|
|
|
+ public function testGetMailModel(): void {
|
|
|
+ $onSubdomainChange = $this->makeOnSubdomainChangeMock('getMailModel');
|
|
|
+
|
|
|
+ $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $organization->expects(self::once())->method('getId')->willReturn(1);
|
|
|
|
|
|
$this->organizationUtils
|
|
|
->expects(self::once())
|
|
|
@@ -237,20 +253,23 @@ class OnSubdomainChangeTest extends TestCase
|
|
|
->with($organization)
|
|
|
->willReturn('mysubdomain.opentalent.fr');
|
|
|
|
|
|
- $this->mailHub
|
|
|
+ $access = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $access->expects(self::once())->method('getId')->willReturn(1);
|
|
|
+ $this->security
|
|
|
->expects(self::once())
|
|
|
- ->method('sendAutomaticEmailToAdmin')
|
|
|
- ->with(
|
|
|
- $organization,
|
|
|
- 'Nouveau sous domaine: mysubdomain',
|
|
|
- 'subdomain',
|
|
|
- [
|
|
|
- 'access' => $admin,
|
|
|
- 'subdomain' => $subdomain,
|
|
|
- 'url' => 'mysubdomain.opentalent.fr'
|
|
|
- ]
|
|
|
- );
|
|
|
+ ->method('getUser')
|
|
|
+ ->willReturn($access);
|
|
|
|
|
|
- $onSubdomainChange->sendEmailAfterSubdomainChange($subdomain);
|
|
|
+ $subdomain = $this->getMockBuilder(Subdomain::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $subdomain->expects(self::exactly(2))->method('getOrganization')->willReturn($organization);
|
|
|
+ $subdomain->expects(self::once())->method('getId')->willReturn(1);
|
|
|
+
|
|
|
+ $mailerModel = $onSubdomainChange->getMailModel($subdomain);
|
|
|
+
|
|
|
+ $this->assertInstanceOf(SubdomainChangeModel::class, $mailerModel);
|
|
|
+ $this->assertEquals($mailerModel->getSenderId(), 1);
|
|
|
+ $this->assertEquals($mailerModel->getOrganizationId(), 1);
|
|
|
+ $this->assertEquals($mailerModel->getSubdomainId(), 1);
|
|
|
+ $this->assertEquals($mailerModel->getUrl(), 'mysubdomain.opentalent.fr');
|
|
|
}
|
|
|
}
|