AbstractTest.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\AuthorizenetAcceptjs\Gateway;
  8. use Magento\Framework\Api\SearchCriteriaBuilder;
  9. use Magento\Framework\App\Area;
  10. use Magento\Framework\HTTP\ZendClient;
  11. use Magento\Framework\HTTP\ZendClientFactory;
  12. use PHPUnit\Framework\MockObject\Builder\InvocationMocker;
  13. use PHPUnit\Framework\MockObject\MockObject;
  14. use PHPUnit\Framework\TestCase;
  15. use Magento\TestFramework\Helper\Bootstrap;
  16. use Magento\TestFramework\ObjectManager;
  17. use Magento\Payment\Gateway\Data\PaymentDataObjectFactory;
  18. use Magento\Quote\Model\Quote\PaymentFactory;
  19. use Magento\Sales\Api\OrderRepositoryInterface;
  20. use Magento\Sales\Model\Order;
  21. use Zend_Http_Response;
  22. abstract class AbstractTest extends TestCase
  23. {
  24. /**
  25. * @var ObjectManager
  26. */
  27. protected $objectManager;
  28. /**
  29. * @var ZendClient|MockObject|InvocationMocker
  30. */
  31. protected $clientMock;
  32. /**
  33. * @var PaymentFactory
  34. */
  35. protected $paymentFactory;
  36. /**
  37. * @var Zend_Http_Response
  38. */
  39. protected $responseMock;
  40. /**
  41. * @throws \Magento\Framework\Exception\LocalizedException
  42. */
  43. protected function setUp()
  44. {
  45. $bootstrap = Bootstrap::getInstance();
  46. $bootstrap->loadArea(Area::AREA_FRONTEND);
  47. $this->objectManager = Bootstrap::getObjectManager();
  48. $this->clientMock = $this->createMock(ZendClient::class);
  49. $this->responseMock = $this->createMock(Zend_Http_Response::class);
  50. $this->clientMock->method('request')
  51. ->willReturn($this->responseMock);
  52. $this->clientMock->method('setUri')
  53. ->with('https://apitest.authorize.net/xml/v1/request.api');
  54. $clientFactoryMock = $this->createMock(ZendClientFactory::class);
  55. $clientFactoryMock->method('create')
  56. ->willReturn($this->clientMock);
  57. /** @var PaymentDataObjectFactory $paymentFactory */
  58. $this->paymentFactory = $this->objectManager->get(PaymentDataObjectFactory::class);
  59. $this->objectManager->addSharedInstance($clientFactoryMock, ZendClientFactory::class);
  60. }
  61. protected function tearDown()
  62. {
  63. $this->objectManager->removeSharedInstance(ZendClientFactory::class);
  64. parent::tearDown();
  65. }
  66. protected function getOrderWithIncrementId(string $incrementId): Order
  67. {
  68. /** @var OrderRepositoryInterface $orderRepository */
  69. $orderRepository = $this->objectManager->get(OrderRepositoryInterface::class);
  70. $searchCriteria = $this->objectManager->get(SearchCriteriaBuilder::class)
  71. ->addFilter('increment_id', $incrementId)
  72. ->create();
  73. /** @var Order $order */
  74. $order = current(
  75. $orderRepository->getList($searchCriteria)
  76. ->getItems()
  77. );
  78. return $order;
  79. }
  80. }