136 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			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);
 | 
						|
    }
 | 
						|
}
 |