objectManager = Bootstrap::getObjectManager(); $this->objectManager->addSharedInstance($this->getGatewayMock(), Gateway::class); $this->graphqlController = $this->objectManager->get(GraphQl::class); $this->graphQlRequest = $this->objectManager->create(GraphQlRequest::class); } protected function tearDown(): void { $this->disablePaypalPaymentMethods(); $this->objectManager->removeSharedInstance(Gateway::class); } /** * Get quote by reserved order id * * @param $reservedOrderId * @return Quote */ protected function getQuoteByReservedOrderId($reservedOrderId): Quote { $quoteFactory = $this->objectManager->get(QuoteFactory::class); /** @var Quote $quote */ $quote = $quoteFactory->create(); $quote->load($reservedOrderId, 'reserved_order_id'); return $quote; } /** * Enables Paypal payment method by payment code * * @return void */ protected function enablePaymentMethod($methodCode): void { $config = $this->objectManager->get(Config::class); $config->setScope(ScopeConfigInterface::SCOPE_TYPE_DEFAULT); $paymentMethodActive = 'payment/' . $methodCode . '/active'; $config->setDataByPath($paymentMethodActive, '1'); $config->save(); } /** * Disables list of Paypal payment methods * * @return void */ protected function disablePaypalPaymentMethods(): void { $paypalMethods = [ 'payflowpro', ]; $config = $this->objectManager->get(Config::class); $config->setScope(ScopeConfigInterface::SCOPE_TYPE_DEFAULT); foreach ($paypalMethods as $method) { $paymentMethodActive = 'payment/' . $method . '/active'; $config->setDataByPath($paymentMethodActive, '0'); $config->save(); } } /** * Get mock of Gateway class * * @return GatewayInterface|MockObject */ private function getGatewayMock() { if (empty($this->gatewayMock)) { $this->gatewayMock = $this->getMockBuilder(Gateway::class) ->disableOriginalConstructor() ->setMethods(['postRequest']) ->getMock(); } return $this->gatewayMock; } /** * Get GraphQl query for creating Paypal token * * @param string $cartId * @param string $paymentMethod * @return string */ protected function getCreatePayflowTokenMutation(string $cartId): string { return <<