magento2-docker/dev/tests/integration/testsuite/Magento/Webapi/Model/ServiceMetadataTest.php

136 lines
5.2 KiB
PHP
Executable File

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Webapi\Model;
use Magento\TestFramework\Helper\Bootstrap;
use Magento\Customer\Api\AccountManagementInterface;
use Magento\Framework\Exception\LocalizedException;
class ServiceMetadataTest extends \PHPUnit\Framework\TestCase
{
/**
* @var ServiceMetadata
*/
private $serviceMetadata;
protected function setUp(): void
{
$objectManager = Bootstrap::getObjectManager();
$this->serviceMetadata = $objectManager->create(ServiceMetadata::class);
}
public function testGetServiceMetadata()
{
$expected = [
'methods' => [
'activate' => [
'method' => 'activate',
'inputRequired' => false,
'isSecure' => false,
'resources' => [
'Magento_Customer::manage'
],
'documentation' => 'Activate a customer account using a key that was sent in a confirmation email.',
'interface' => [
'in' => [
'parameters' => [
'email' => [
'type' => 'string',
'required' => true,
'documentation' => null
],
'confirmationKey' => [
'type' => 'string',
'required' => true,
'documentation' => null
]
]
],
'out' => [
'parameters' => [
'result' => [
'type' => 'CustomerDataCustomerInterface',
'required' => true,
'documentation' => ''
]
],
'throws' => [
'\\' . LocalizedException::class
]
]
]
]
],
'class' => AccountManagementInterface::class,
'description' => 'Interface for managing customers accounts.',
];
$actual = $this->serviceMetadata->getServiceMetadata('customerAccountManagementV1');
$this->assertEquals(array_replace_recursive($actual, $expected), $actual);
}
public function testGetRouteMetadata()
{
$expected = [
'methods' => [
'activate' => [
'method' => 'activate',
'inputRequired' => false,
'isSecure' => false,
'resources' => [
'Magento_Customer::manage'
],
'documentation' => 'Activate a customer account using a key that was sent in a confirmation email.',
'interface' => [
'in' => [
'parameters' => [
'email' => [
'type' => 'string',
'required' => true,
'documentation' => null
],
'confirmationKey' => [
'type' => 'string',
'required' => true,
'documentation' => null
]
]
],
'out' => [
'parameters' => [
'result' => [
'type' => 'CustomerDataCustomerInterface',
'required' => true,
'documentation' => ''
]
],
'throws' => [
'\\' . LocalizedException::class
]
]
]
]
],
'class' => AccountManagementInterface::class,
'description' => 'Interface for managing customers accounts.',
'routes' => [
'/V1/customers/me/activate' => [
'PUT' => [
'method' => 'activateById',
'parameters' => [
'customerId' => [
'force' => true,
'value' => '%customer_id%'
]
]
]
]
]
];
$actual = $this->serviceMetadata->getRouteMetadata('customerAccountManagementV1');
$this->assertEquals(array_replace_recursive($actual, $expected), $actual);
}
}