123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Webapi\Test\Unit\Controller\Soap\Request;
- use Magento\Framework\Api\SimpleDataObjectConverter;
- use Magento\Webapi\Model\ServiceMetadata;
- /**
- * Test for \Magento\Webapi\Controller\Soap\Request\Handler.
- */
- class HandlerTest extends \PHPUnit\Framework\TestCase
- {
- /** @var \Magento\Webapi\Controller\Soap\Request\Handler */
- protected $_handler;
- /** @var \Magento\Framework\ObjectManagerInterface */
- protected $_objectManagerMock;
- /** @var \PHPUnit_Framework_MockObject_MockObject */
- protected $_apiConfigMock;
- /** @var \Magento\Framework\Webapi\Request */
- protected $_requestMock;
- /** @var \PHPUnit_Framework_MockObject_MockObject */
- protected $_authorizationMock;
- /** @var SimpleDataObjectConverter|\PHPUnit_Framework_MockObject_MockObject */
- protected $_dataObjectConverter;
- /** @var \Magento\Framework\Webapi\ServiceInputProcessor|\PHPUnit_Framework_MockObject_MockObject */
- protected $_serviceInputProcessorMock;
- /** @var \Magento\Framework\Reflection\DataObjectProcessor|\PHPUnit_Framework_MockObject_MockObject */
- protected $_dataObjectProcessorMock;
- /** @var \Magento\Framework\Reflection\MethodsMap|\PHPUnit_Framework_MockObject_MockObject */
- protected $_methodsMapProcessorMock;
- /** @var array */
- protected $_arguments;
- protected function setUp()
- {
- /** Prepare mocks for SUT constructor. */
- $this->_apiConfigMock = $this->getMockBuilder(\Magento\Webapi\Model\Soap\Config::class)
- ->setMethods(['getServiceMethodInfo'])->disableOriginalConstructor()->getMock();
- $this->_requestMock = $this->createMock(\Magento\Framework\Webapi\Request::class);
- $this->_objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
- $this->_authorizationMock = $this->createMock(\Magento\Framework\Webapi\Authorization::class);
- $this->_dataObjectConverter = $this->createPartialMock(
- \Magento\Framework\Api\SimpleDataObjectConverter::class,
- ['convertStdObjectToArray']
- );
- $this->_serviceInputProcessorMock = $this->createMock(\Magento\Framework\Webapi\ServiceInputProcessor::class);
- $this->_dataObjectProcessorMock = $this->createMock(\Magento\Framework\Reflection\DataObjectProcessor::class);
- $this->_methodsMapProcessorMock = $this->createMock(\Magento\Framework\Reflection\MethodsMap::class);
- /** Initialize SUT. */
- $this->_handler = new \Magento\Webapi\Controller\Soap\Request\Handler(
- $this->_requestMock,
- $this->_objectManagerMock,
- $this->_apiConfigMock,
- $this->_authorizationMock,
- $this->_dataObjectConverter,
- $this->_serviceInputProcessorMock,
- $this->_dataObjectProcessorMock,
- $this->_methodsMapProcessorMock
- );
- parent::setUp();
- }
- public function testCall()
- {
- $requestedServices = ['requestedServices'];
- $this->_requestMock->expects($this->once())
- ->method('getRequestedServices')
- ->will($this->returnValue($requestedServices));
- $this->_dataObjectConverter->expects($this->once())
- ->method('convertStdObjectToArray')
- ->will($this->returnValue(['field' => 1]));
- $this->_methodsMapProcessorMock->method('getMethodReturnType')->willReturn('string');
- $operationName = 'soapOperation';
- $className = \Magento\Framework\DataObject::class;
- $methodName = 'testMethod';
- $isSecure = false;
- $aclResources = [['Magento_TestModule::resourceA']];
- $this->_apiConfigMock->expects($this->once())
- ->method('getServiceMethodInfo')
- ->with($operationName, $requestedServices)
- ->will(
- $this->returnValue(
- [
- ServiceMetadata::KEY_CLASS => $className,
- ServiceMetadata::KEY_METHOD => $methodName,
- ServiceMetadata::KEY_IS_SECURE => $isSecure,
- ServiceMetadata::KEY_ACL_RESOURCES => $aclResources,
- ]
- )
- );
- $this->_authorizationMock->expects($this->once())->method('isAllowed')->will($this->returnValue(true));
- $serviceMock = $this->getMockBuilder($className)
- ->disableOriginalConstructor()
- ->setMethods([$methodName])
- ->getMock();
- $serviceResponse = ['foo' => 'bar'];
- $serviceMock->expects($this->once())->method($methodName)->will($this->returnValue($serviceResponse));
- $this->_objectManagerMock->expects($this->once())->method('get')->with($className)
- ->will($this->returnValue($serviceMock));
- $this->_serviceInputProcessorMock
- ->expects($this->once())
- ->method('process')
- ->will($this->returnArgument(2));
- /** Execute SUT. */
- $this->assertEquals(
- ['result' => $serviceResponse],
- $this->_handler->__call($operationName, [(object)['field' => 1]])
- );
- }
- }
|