ConfigTest.php 3.96 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Webapi\Model\Soap;

use Magento\TestFramework\Helper\Bootstrap;
use Magento\Customer\Api\AccountManagementInterface;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Framework\Exception\LocalizedException;

class ConfigTest extends \PHPUnit\Framework\TestCase
{
    /**
     * @var Config
     */
    private $soapConfig;

    protected function setUp()
    {
        $objectManager = Bootstrap::getObjectManager();
        $this->soapConfig = $objectManager->create(Config::class);
    }

    public function testGetRequestedSoapServices()
    {
        $expected = [
            'customerAccountManagementV1' => [
                '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' => null
                                    ]
                                ],
                                'throws' => [
                                    '\\' . LocalizedException::class
                                ]
                            ]
                        ]
                    ]
                ],
                'class' => AccountManagementInterface::class,
                'description' => 'Interface for managing customers accounts.',
            ]
        ];
        $actual = $this->soapConfig->getRequestedSoapServices(
            [
                'customerAccountManagementV1',
                'NonExistentService'
            ]
        );
        $this->assertEquals(array_replace_recursive($actual, $expected), $actual);
    }

    public function testGetServiceMethodInfo()
    {
        $expected = [
            'class' => CustomerRepositoryInterface::class,
            'method' => 'getById',
            'isSecure' => false,
            'resources' => [
                'Magento_Customer::customer',
                'self'
            ],
        ];
        $actual = $this->soapConfig->getServiceMethodInfo(
            'customerCustomerRepositoryV1GetById',
            [
                'customerCustomerRepositoryV1',
                'NonExistentService'
            ]
        );
        $this->assertEquals($expected, $actual);
    }

    public function testGetSoapOperation()
    {
        $expected = 'customerAccountManagementV1Activate';
        $actual = $this->soapConfig
            ->getSoapOperation(
                AccountManagementInterface::class,
                'activate',
                'V1'
            );
        $this->assertEquals($expected, $actual);
    }
}