diff --git a/test/unit/webhooks/WebHookClassServiceTest.php b/test/unit/webhooks/WebHookClassServiceTest.php index 3dd88bec0d..c60ab3a4fd 100644 --- a/test/unit/webhooks/WebHookClassServiceTest.php +++ b/test/unit/webhooks/WebHookClassServiceTest.php @@ -29,7 +29,8 @@ use core_kernel_classes_Property as Property; use core_kernel_classes_Resource as Resource; use oat\generis\model\data\Ontology; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; +use PHPUnit\Framework\TestCase; use oat\tao\model\auth\BasicAuthType; use oat\tao\model\auth\BasicType; use oat\tao\model\webhooks\configEntity\Webhook; @@ -41,6 +42,8 @@ class WebHookClassServiceTest extends TestCase { + use ServiceManagerMockTrait; + private WebHookClassService $webhookService; private WebhookEntryFactory $webhookEntryFactory; @@ -58,7 +61,7 @@ protected function setUp(): void ['getDataBinder', 'getModel', 'getProperty', 'createInstance', 'getRootClass'] ); - $serviceLocator = $this->getServiceLocatorMock([ + $serviceLocator = $this->getServiceManagerMock([ WebhookEntryFactory::class => $this->webhookEntryFactory, WebhookAuthService::class => $authService, ]); diff --git a/test/unit/webhooks/WebhookEntryFactoryTest.php b/test/unit/webhooks/WebhookEntryFactoryTest.php index 053ea2ddde..6c3fd00d13 100644 --- a/test/unit/webhooks/WebhookEntryFactoryTest.php +++ b/test/unit/webhooks/WebhookEntryFactoryTest.php @@ -20,7 +20,7 @@ namespace oat\tao\test\unit\webhooks; -use oat\generis\test\TestCase; +use PHPUnit\Framework\TestCase; use oat\tao\model\webhooks\configEntity\WebhookEntryFactory; use oat\tao\model\webhooks\configEntity\WebhookInterface; diff --git a/test/unit/webhooks/WebhookEventsServiceTest.php b/test/unit/webhooks/WebhookEventsServiceTest.php index 9f6942cf2a..15b887c904 100644 --- a/test/unit/webhooks/WebhookEventsServiceTest.php +++ b/test/unit/webhooks/WebhookEventsServiceTest.php @@ -20,7 +20,7 @@ namespace oat\tao\test\unit\webhooks; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; use oat\oatbox\event\Event; use oat\oatbox\event\EventManager; use oat\tao\model\exceptions\WebhookConfigMissingException; @@ -31,10 +31,13 @@ use oat\tao\model\webhooks\task\WebhookTaskParams; use oat\tao\model\webhooks\WebhookTaskServiceInterface; use oat\generis\test\MockObject; +use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; class WebhookEventsServiceTest extends TestCase { + use ServiceManagerMockTrait; + /** @var EventManager|MockObject */ private $eventManagerMock; @@ -81,7 +84,7 @@ public function testHandleEventMissingWebhookConfig() ] ]); - $service->setServiceLocator($this->getServiceLocatorMock([ + $service->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $this->whConfigRegistryMock, WebhookTaskServiceInterface::SERVICE_ID => $this->whTaskServiceMock ])); @@ -112,7 +115,7 @@ public function testRegisterEvent() WebhookEventsService::OPTION_SUPPORTED_EVENTS => [] ]); - $service->setServiceLocator($this->getServiceLocatorMock([ + $service->setServiceLocator($this->getServiceManagerMock([ EventManager::SERVICE_ID => $this->eventManagerMock ])); @@ -134,7 +137,7 @@ public function testUnregisterEvent() ] ]); - $service->setServiceLocator($this->getServiceLocatorMock([ + $service->setServiceLocator($this->getServiceManagerMock([ EventManager::SERVICE_ID => $this->eventManagerMock ])); @@ -167,7 +170,7 @@ public function testHandleEventPositive() ] ]); - $service->setServiceLocator($this->getServiceLocatorMock([ + $service->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $this->whConfigRegistryMock, WebhookTaskServiceInterface::SERVICE_ID => $this->whTaskServiceMock ])); @@ -203,7 +206,7 @@ public function testHandleEventPositive() ); $this->assertGreaterThanOrEqual($whParams[WebhookTaskParams::TRIGGERED_TIMESTAMP], $timestampStart); $this->assertLessThanOrEqual($whParams[WebhookTaskParams::TRIGGERED_TIMESTAMP], $timestampEnd); - $this->assertRegExp('/^([a-z0-9]{32})$/', $whParams[WebhookTaskParams::EVENT_ID]); + $this->assertMatchesRegularExpression('/^([a-z0-9]{32})$/', $whParams[WebhookTaskParams::EVENT_ID]); } } @@ -242,7 +245,7 @@ public function testHandleEventNotSerializable() ] ]); - $service->setServiceLocator($this->getServiceLocatorMock([ + $service->setServiceLocator($this->getServiceManagerMock([ WebhookTaskServiceInterface::SERVICE_ID => $this->whTaskServiceMock, ])); @@ -275,7 +278,7 @@ public function testHandleEventNoWebhooks() ] ]); - $service->setServiceLocator($this->getServiceLocatorMock([ + $service->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $this->whConfigRegistryMock ])); diff --git a/test/unit/webhooks/WebhookFileRegistryTest.php b/test/unit/webhooks/WebhookFileRegistryTest.php index acff1d9028..925d3e9302 100644 --- a/test/unit/webhooks/WebhookFileRegistryTest.php +++ b/test/unit/webhooks/WebhookFileRegistryTest.php @@ -20,7 +20,8 @@ namespace oat\tao\test\unit\webhooks; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; +use PHPUnit\Framework\TestCase; use oat\tao\model\webhooks\configEntity\Webhook; use oat\tao\model\webhooks\configEntity\WebhookAuth; use oat\tao\model\webhooks\configEntity\WebhookEntryFactory; @@ -29,6 +30,8 @@ class WebhookFileRegistryTest extends TestCase { + use ServiceManagerMockTrait; + /** @var WebhookFileRegistry */ private $registry; @@ -61,7 +64,7 @@ public function testGetWebhookConfig() ] ]); - $serviceLocator = $this->getServiceLocatorMock([ + $serviceLocator = $this->getServiceManagerMock([ WebhookEntryFactory::class => $this->webhookEntryFactoryMock ]); diff --git a/test/unit/webhooks/WebhookRegistryManagerTest.php b/test/unit/webhooks/WebhookRegistryManagerTest.php index bf27de08b2..663c72b904 100644 --- a/test/unit/webhooks/WebhookRegistryManagerTest.php +++ b/test/unit/webhooks/WebhookRegistryManagerTest.php @@ -22,7 +22,8 @@ namespace oat\tao\test\unit\webhooks; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; +use PHPUnit\Framework\TestCase; use oat\oatbox\service\ServiceManager; use oat\tao\model\webhooks\configEntity\Webhook; use oat\tao\model\webhooks\WebhookFileRegistry; @@ -32,6 +33,8 @@ class WebhookRegistryManagerTest extends TestCase { + use ServiceManagerMockTrait; + /** @var WebhookRegistryManager */ private $subject; @@ -49,7 +52,7 @@ public function setUp(): void $this->webhookMock = $this->createMock(Webhook::class); $this->webhookFileRegistryMock = $this->createMock(WebhookFileRegistry::class); - $this->serviceLocator = $this->getServiceLocatorMock([ + $this->serviceLocator = $this->getServiceManagerMock([ WebhookRegistryInterface::class => $this->webhookFileRegistryMock ]); diff --git a/test/unit/webhooks/task/AuthTypeFake.php b/test/unit/webhooks/task/AuthTypeFake.php deleted file mode 100644 index 426c3fccb6..0000000000 --- a/test/unit/webhooks/task/AuthTypeFake.php +++ /dev/null @@ -1,87 +0,0 @@ -getServiceLocator()) { - throw new \RuntimeException('Service Locator is not set'); - } - - /** @var MockObject|ResponseInterface $response */ - $response = $mockGenerator->getMock(ResponseInterface::class); - $response->callRequest = $request; - $response->callClientOptions = $clientOptions; - $response->credentials = $this->credentials; - - return $response; - } - - /** - * RDF class or AbstractCredentials of the AuthType - * @param array $parameters - */ - public function getAuthClass($parameters = []) - { - throw new \RuntimeException('Not implemented'); - } - - /** - * All fields to configure current authenticator - * - * @return void - */ - public function getAuthProperties() - { - throw new \RuntimeException('Not implemented'); - } - - /** - * Returns template for the current instance (or empty template for the default authorization) with credentials - * - * @return string - */ - public function getTemplate() - { - throw new \RuntimeException('Not implemented'); - } -} diff --git a/test/unit/webhooks/task/JsonWebhookResponseFactoryTest.php b/test/unit/webhooks/task/JsonWebhookResponseFactoryTest.php index e543411fd1..8e09f32840 100644 --- a/test/unit/webhooks/task/JsonWebhookResponseFactoryTest.php +++ b/test/unit/webhooks/task/JsonWebhookResponseFactoryTest.php @@ -21,13 +21,16 @@ namespace oat\tao\test\unit\webhooks\task; use GuzzleHttp\Psr7\Response; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; +use PHPUnit\Framework\TestCase; use oat\tao\model\webhooks\task\InvalidJsonException; use oat\tao\model\webhooks\task\JsonValidator; use oat\tao\model\webhooks\task\JsonWebhookResponseFactory; class JsonWebhookResponseFactoryTest extends TestCase { + use ServiceManagerMockTrait; + public function testGetAcceptedContentType() { $factory = new JsonWebhookResponseFactory(); @@ -57,7 +60,7 @@ public function testCreatePositive() $event->status === 'accepted'; })); - $factory->setServiceLocator($this->getServiceLocatorMock([ + $factory->setServiceLocator($this->getServiceManagerMock([ JsonValidator::class => $jsonValidatorMock ])); @@ -103,7 +106,7 @@ public function testCreateInvalidData() ->with(['ab']) ->willThrowException(new InvalidJsonException('Err', 0, ['err1'])); - $factory->setServiceLocator($this->getServiceLocatorMock([ + $factory->setServiceLocator($this->getServiceManagerMock([ JsonValidator::class => $jsonValidatorMock ])); diff --git a/test/unit/webhooks/task/WebhookSenderTest.php b/test/unit/webhooks/task/WebhookSenderTest.php index 127006d901..153533f4ff 100644 --- a/test/unit/webhooks/task/WebhookSenderTest.php +++ b/test/unit/webhooks/task/WebhookSenderTest.php @@ -21,14 +21,23 @@ namespace oat\tao\test\unit\webhooks\task; use GuzzleHttp\Exception\GuzzleException; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; +use oat\taoOauth\model\bootstrap\OAuth2AuthType; +use oat\taoOauth\model\Oauth2Service; +use oat\taoOauth\model\OAuthClient; +use oat\taoOauth\model\storage\grant\OauthCredentials; +use oat\taoOauth\model\storage\OauthCredentialsFactory; +use PHPUnit\Framework\TestCase; use oat\tao\model\webhooks\configEntity\WebhookAuthInterface; use oat\tao\model\webhooks\task\WebhookSender; use Psr\Http\Message\RequestInterface; use oat\generis\test\MockObject; +use Psr\Http\Message\ResponseInterface; class WebhookSenderTest extends TestCase { + use ServiceManagerMockTrait; + /** * @throws GuzzleException * @throws \common_exception_InvalidArgumentType @@ -37,18 +46,34 @@ public function testPerformRequestWithAuth() { /** @var MockObject|RequestInterface $request */ $request = $this->createMock(RequestInterface::class); + $OauthCredentialsFactoryMock = $this->createMock(OauthCredentialsFactory::class); + $responseMock = $this->createMock(ResponseInterface::class); + $OauthCredentialsMock = $this->createMock(OauthCredentials::class); + $OAuthClientMock = $this->createMock(OAuthClient::class); + $Oauth2ServiceMock = $this->createMock(Oauth2Service::class); + $OauthCredentialsFactoryMock->method('getCredentialTypeByCredentials')->willReturn($OauthCredentialsMock); + $Oauth2ServiceMock->method('getClient')->willReturn($OAuthClientMock); + $OAuthClientMock->method('request')->willReturn($responseMock); /** @var MockObject|WebhookAuthInterface $authConfig */ $authConfig = $this->createMock(WebhookAuthInterface::class); - $authConfig->method('getAuthClass')->willReturn(AuthTypeFake::class); - $authConfig->method('getCredentials')->willReturn(['c' => 'v']); + + $authConfig + ->expects(self::once()) + ->method('getAuthClass') + ->willReturn(OAuth2AuthType::class); + + $authConfig + ->expects(self::once()) + ->method('getCredentials') + ->willReturn(['c' => 'v']); $sender = new WebhookSender(); - $sender->setServiceLocator($this->getServiceLocatorMock()); - /** @var \stdClass $response */ - $response = $sender->performRequest($request, $authConfig); + $sender->setServiceLocator($this->getServiceManagerMock([ + OauthCredentialsFactory::class => $OauthCredentialsFactoryMock, + Oauth2Service::SERVICE_ID => $Oauth2ServiceMock + ])); - self::assertSame($request, $response->callRequest); - self::assertSame(['c' => 'v'], $response->credentials); + $sender->performRequest($request, $authConfig); } } diff --git a/test/unit/webhooks/task/WebhookTaskParamsFactoryTest.php b/test/unit/webhooks/task/WebhookTaskParamsFactoryTest.php index 2b5b7a081f..61897aa032 100644 --- a/test/unit/webhooks/task/WebhookTaskParamsFactoryTest.php +++ b/test/unit/webhooks/task/WebhookTaskParamsFactoryTest.php @@ -2,7 +2,7 @@ namespace oat\tao\test\unit\webhooks\task; -use oat\generis\test\TestCase; +use PHPUnit\Framework\TestCase; use oat\tao\model\webhooks\task\WebhookTaskParams; use oat\tao\model\webhooks\task\WebhookTaskParamsFactory; diff --git a/test/unit/webhooks/task/WebhookTaskReportsTest.php b/test/unit/webhooks/task/WebhookTaskReportsTest.php index 92d22b338e..279a6753d7 100644 --- a/test/unit/webhooks/task/WebhookTaskReportsTest.php +++ b/test/unit/webhooks/task/WebhookTaskReportsTest.php @@ -25,7 +25,8 @@ use GuzzleHttp\Exception\RequestException; use GuzzleHttp\Psr7\Request; use GuzzleHttp\Psr7\Response; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; +use PHPUnit\Framework\TestCase; use oat\tao\model\webhooks\log\WebhookEventLogInterface; use oat\tao\model\webhooks\task\WebhookResponse; use oat\tao\model\webhooks\task\WebhookTaskContext; @@ -36,6 +37,8 @@ class WebhookTaskReportsTest extends TestCase { + use ServiceManagerMockTrait; + /** * @var WebhookEventLogInterface|MockObject */ @@ -65,7 +68,7 @@ public function setUp(): void { $this->webhookEventLogMock = $this->createMock(WebhookEventLogInterface::class); $this->loggerMock = $this->createMock(LoggerInterface::class); - $this->serviceLocatorMock = $this->getServiceLocatorMock([ + $this->serviceLocatorMock = $this->getServiceManagerMock([ WebhookEventLogInterface::SERVICE_ID => $this->webhookEventLogMock, ]); diff --git a/test/unit/webhooks/task/WebhookTaskTest.php b/test/unit/webhooks/task/WebhookTaskTest.php index 1a57df8560..15fd9c5235 100644 --- a/test/unit/webhooks/task/WebhookTaskTest.php +++ b/test/unit/webhooks/task/WebhookTaskTest.php @@ -26,7 +26,8 @@ use GuzzleHttp\Exception\ServerException; use GuzzleHttp\Psr7\Request; use GuzzleHttp\Psr7\Response; -use oat\generis\test\TestCase; +use oat\generis\test\ServiceManagerMockTrait; +use PHPUnit\Framework\TestCase; use oat\oatbox\log\LoggerService; use oat\tao\model\taskQueue\Task\TaskInterface; use oat\tao\model\webhooks\configEntity\Webhook; @@ -52,6 +53,8 @@ class WebhookTaskTest extends TestCase { + use ServiceManagerMockTrait; + private $serviceLocatorMock; /** @@ -136,7 +139,7 @@ public function setUp(): void $this->webhookLogServiceMock = $this->createMock(WebhookEventLogInterface::class); $this->webhookTaskReports = $this->createMock(WebhookTaskReports::class); - $this->serviceLocatorMock = $this->getServiceLocatorMock([ + $this->serviceLocatorMock = $this->getServiceManagerMock([ WebhookTaskReports::class => $this->webhookTaskReports, WebhookRegistryInterface::class => $this->webhookRegistryMock, WebhookPayloadFactoryInterface::SERVICE_ID => $this->webhookPayloadFactoryInterfaceMock, @@ -182,7 +185,7 @@ public function testRequestWithoutResponsevalidation() $task = new WebhookTask(); - $task->setServiceLocator($this->getServiceLocatorMock([ + $task->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $webhookRegistry, WebhookPayloadFactoryInterface::SERVICE_ID => $payloadFactory, WebhookTaskParamsFactory::class => $taskParamsFactory, @@ -354,7 +357,7 @@ public function testInvokeValid() $task = new WebhookTask(); - $task->setServiceLocator($this->getServiceLocatorMock([ + $task->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $webhookRegistry, WebhookPayloadFactoryInterface::SERVICE_ID => $payloadFactory, WebhookTaskParamsFactory::class => $taskParamsFactory, @@ -421,7 +424,7 @@ public function testInvokeInvalidWebhookConfigId() $task = new WebhookTask(); - $task->setServiceLocator($this->getServiceLocatorMock([ + $task->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $webhookRegistry, WebhookTaskParamsFactory::class => $taskParamsFactory, WebhookEventLogInterface::SERVICE_ID => $this->webhookLogServiceMock, @@ -485,7 +488,7 @@ public function testEventNotDelivered() $task = new WebhookTask(); - $task->setServiceLocator($this->getServiceLocatorMock([ + $task->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $webhookRegistry, WebhookPayloadFactoryInterface::SERVICE_ID => $payloadFactory, WebhookTaskParamsFactory::class => $taskParamsFactory, @@ -548,7 +551,7 @@ public function testWrongResponse() $task = new WebhookTask(); - $task->setServiceLocator($this->getServiceLocatorMock([ + $task->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $webhookRegistry, WebhookPayloadFactoryInterface::SERVICE_ID => $payloadFactory, WebhookTaskParamsFactory::class => $taskParamsFactory, @@ -617,7 +620,7 @@ public function testHttpError() $task = new WebhookTask(); - $task->setServiceLocator($this->getServiceLocatorMock([ + $task->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $webhookRegistry, WebhookPayloadFactoryInterface::SERVICE_ID => $payloadFactory, WebhookTaskParamsFactory::class => $taskParamsFactory, @@ -688,7 +691,7 @@ public function testRequestExceptionHasResponse() $task = new WebhookTask(); - $task->setServiceLocator($this->getServiceLocatorMock([ + $task->setServiceLocator($this->getServiceManagerMock([ WebhookRegistryInterface::class => $webhookRegistry, WebhookPayloadFactoryInterface::SERVICE_ID => $payloadFactory, WebhookTaskParamsFactory::class => $taskParamsFactory,