100 lines
3.0 KiB
PHP
Executable File
100 lines
3.0 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\Customer\Api;
|
|
|
|
use Exception;
|
|
use Magento\Framework\Exception\AuthenticationException;
|
|
use Magento\Framework\Webapi\Rest\Request;
|
|
use Magento\Integration\Api\CustomerTokenServiceInterface;
|
|
use Magento\TestFramework\ObjectManager;
|
|
use Magento\TestFramework\TestCase\WebapiAbstract;
|
|
|
|
/**
|
|
* Test class for Magento\Integration\Api\CustomerTokenServiceInterface
|
|
*/
|
|
class AccountManagementRevokeCustomerTokenTest extends WebapiAbstract
|
|
{
|
|
public const RESOURCE_PATH = '/V1/integration/customer/revoke-customer-token';
|
|
public const INTEGRATION_SERVICE = 'integrationCustomerTokenServiceV1';
|
|
public const SERVICE_VERSION = 'V1';
|
|
|
|
/**
|
|
* Test token revoking for authenticated customer
|
|
*
|
|
* @magentoApiDataFixture Magento/Customer/_files/customer.php
|
|
*/
|
|
public function testRevokeCustomerToken(): void
|
|
{
|
|
$token = $this->getCustomerToken();
|
|
$serviceInfo = [
|
|
'rest' => [
|
|
'resourcePath' => self::RESOURCE_PATH,
|
|
'httpMethod' => Request::HTTP_METHOD_POST,
|
|
'token' => $token,
|
|
],
|
|
'soap' => [
|
|
'service' => self::INTEGRATION_SERVICE,
|
|
'serviceVersion' => self::SERVICE_VERSION,
|
|
'operation' => self::INTEGRATION_SERVICE . 'RevokeCustomerAccessToken',
|
|
'token' => $token,
|
|
]
|
|
];
|
|
|
|
$requestData = [];
|
|
if (TESTS_WEB_API_ADAPTER === self::ADAPTER_SOAP) {
|
|
$requestData['customerId'] = 0;
|
|
}
|
|
|
|
$this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*
|
|
* @throws AuthenticationException
|
|
*/
|
|
private function getCustomerToken(): string
|
|
{
|
|
$userName = 'customer@example.com';
|
|
$password = 'password';
|
|
|
|
/** @var CustomerTokenServiceInterface $customerTokenService */
|
|
$customerTokenService = ObjectManager::getInstance()->get(CustomerTokenServiceInterface::class);
|
|
|
|
return $customerTokenService->createCustomerAccessToken($userName, $password);
|
|
}
|
|
|
|
/**
|
|
* Test token revoking for guest customer
|
|
*/
|
|
public function testRevokeCustomerTokenForGuestCustomer(): void
|
|
{
|
|
$this->expectException(Exception::class);
|
|
$requestData = [];
|
|
|
|
if (TESTS_WEB_API_ADAPTER === self::ADAPTER_SOAP) {
|
|
$requestData['customerId'] = 0;
|
|
}
|
|
|
|
$serviceInfo = [
|
|
'rest' => [
|
|
'resourcePath' => self::RESOURCE_PATH,
|
|
'httpMethod' => Request::HTTP_METHOD_POST,
|
|
],
|
|
'soap' => [
|
|
'service' => self::INTEGRATION_SERVICE,
|
|
'serviceVersion' => self::SERVICE_VERSION,
|
|
'operation' => self::INTEGRATION_SERVICE . 'RevokeCustomerAccessToken',
|
|
]
|
|
];
|
|
|
|
$this->_webApiCall($serviceInfo, $requestData);
|
|
}
|
|
}
|