![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-adobe-ims/Test/Unit/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\AdobeIms\Test\Unit\Model; use Exception; use Magento\AdobeIms\Model\LogOut; use Magento\AdobeImsApi\Api\ConfigInterface; use Magento\AdobeImsApi\Api\Data\UserProfileInterface; use Magento\AdobeImsApi\Api\FlushUserTokensInterface; use Magento\AdobeImsApi\Api\GetAccessTokenInterface; use Magento\AdobeImsApi\Api\UserProfileRepositoryInterface; use Magento\Authorization\Model\UserContextInterface; use Magento\Framework\HTTP\Client\Curl; use Magento\Framework\HTTP\Client\CurlFactory; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; /** * Test the Adobe Stock log out service */ class LogOutTest extends TestCase { private const HTTP_FOUND = 302; private const HTTP_ERROR = 500; /** * @var CurlFactory|MockObject */ private $curlFactoryMock; /** * @var LoggerInterface|MockObject */ private $loggerInterfaceMock; /** * @var ConfigInterface|MockObject */ private $configInterfaceMock; /** * @var GetAccessTokenInterface|MockObject */ private $getToken; /** * @var FlushUserTokensInterface|MockObject */ private $flushTokens; /** * @var LogOut|MockObject $model */ private $model; /** * @inheritdoc */ protected function setUp(): void { $this->curlFactoryMock = $this->createMock(CurlFactory::class); $this->configInterfaceMock = $this->createMock(ConfigInterface::class); $this->loggerInterfaceMock = $this->createMock(LoggerInterface::class); $this->getToken = $this->createMock(GetAccessTokenInterface::class); $this->flushTokens = $this->createMock(FlushUserTokensInterface::class); $this->model = new LogOut( $this->loggerInterfaceMock, $this->configInterfaceMock, $this->curlFactoryMock, $this->getToken, $this->flushTokens ); } /** * Test LogOut. */ public function testExecute(): void { $this->getToken->expects($this->once()) ->method('execute') ->willReturn('token'); $curl = $this->createMock(Curl::class); $this->curlFactoryMock->expects($this->once()) ->method('create') ->willReturn($curl); $curl->expects($this->exactly(2)) ->method('addHeader') ->willReturn(null); $curl->expects($this->once()) ->method('post') ->willReturnSelf(); $curl->expects($this->once()) ->method('getStatus') ->willReturn(self::HTTP_FOUND); $this->flushTokens->expects($this->once()) ->method('execute'); $this->assertEquals(true, $this->model->execute()); } /** * Test LogOut with Error. */ public function testExecuteWithError(): void { $this->getToken->expects($this->once()) ->method('execute') ->willReturn('token'); $curl = $this->createMock(Curl::class); $this->curlFactoryMock->expects($this->once()) ->method('create') ->willReturn($curl); $curl->expects($this->exactly(2)) ->method('addHeader') ->willReturn(null); $curl->expects($this->once()) ->method('post') ->willReturnSelf(); $curl->expects($this->once()) ->method('getStatus') ->willReturn(self::HTTP_ERROR); $this->loggerInterfaceMock->expects($this->once()) ->method('critical'); $this->flushTokens->expects($this->never()) ->method('execute'); $this->assertEquals(false, $this->model->execute()); } /** * Test LogOut with Exception. */ public function testExecuteWithException(): void { $this->getToken->expects($this->once()) ->method('execute') ->willReturn('token'); $curl = $this->createMock(Curl::class); $this->curlFactoryMock->expects($this->once()) ->method('create') ->willReturn($curl); $curl->expects($this->exactly(2)) ->method('addHeader') ->willReturn(null); $curl->expects($this->once()) ->method('post') ->willReturnSelf(); $curl->expects($this->once()) ->method('getStatus') ->willReturn(self::HTTP_FOUND); $this->flushTokens->expects($this->once()) ->method('execute') ->willThrowException(new Exception('Could not save user profile.')); $this->loggerInterfaceMock->expects($this->once()) ->method('critical'); $this->assertFalse($this->model->execute()); } }