Skip to content
This repository was archived by the owner on Dec 19, 2019. It is now read-only.

Commit

Permalink
GraphQL-601: [Test Coverage] Offline payments methods
Browse files Browse the repository at this point in the history
  • Loading branch information
naydav committed Apr 26, 2019
1 parent 97c416c commit 157f520
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value

return [
'code' => $payment->getMethod(),
'title' => $payment->getMethodInstance()->getTitle(),
'purchase_order_number' => $payment->getPoNumber(),
];
}
Expand Down
7 changes: 4 additions & 3 deletions app/code/Magento/QuoteGraphQl/etc/schema.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -241,12 +241,13 @@ type AvailableShippingMethod {
}

type AvailablePaymentMethod {
code: String @doc(description: "The payment method code")
title: String @doc(description: "The payment method title.")
code: String! @doc(description: "The payment method code")
title: String! @doc(description: "The payment method title.")
}

type SelectedPaymentMethod {
code: String @doc(description: "The payment method code")
code: String! @doc(description: "The payment method code")
title: String! @doc(description: "The payment method title.")
purchase_order_number: String @doc(description: "The purchase order number.")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,38 @@ protected function setUp()
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/enable_offline_payment_methods.php
*
* @param string $methodCode
* @param string $methodTitle
* @dataProvider offlinePaymentMethodDataProvider
*/
public function testSetOfflinePaymentMethod(string $methodCode)
public function testSetOfflinePaymentMethod(string $methodCode, string $methodTitle)
{
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote');

$query = $this->getQuery(
$maskedQuoteId,
$methodCode
);
$query = $this->getQuery($maskedQuoteId, $methodCode);
$response = $this->graphQlMutation($query, [], '', $this->getHeaderMap());

self::assertArrayHasKey('setPaymentMethodOnCart', $response);
self::assertArrayHasKey('cart', $response['setPaymentMethodOnCart']);
self::assertArrayHasKey('selected_payment_method', $response['setPaymentMethodOnCart']['cart']);
self::assertArrayHasKey('code', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
self::assertEquals($methodCode, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['code']);

$selectedPaymentMethod = $response['setPaymentMethodOnCart']['cart']['selected_payment_method'];
self::assertArrayHasKey('code', $selectedPaymentMethod);
self::assertEquals($methodCode, $selectedPaymentMethod['code']);

self::assertArrayHasKey('title', $selectedPaymentMethod);
self::assertEquals($methodTitle, $selectedPaymentMethod['title']);
}

/**
* @return array
*/
public function offlinePaymentMethodDataProvider(): array
{
return [
'check_mo' => [Checkmo::PAYMENT_METHOD_CHECKMO_CODE, 'Check / Money order'],
'bank_transfer' => [Banktransfer::PAYMENT_METHOD_BANKTRANSFER_CODE, 'Bank Transfer Payment'],
'cash_on_delivery' => [Cashondelivery::PAYMENT_METHOD_CASHONDELIVERY_CODE, 'Cash On Delivery'],
];
}

/**
Expand All @@ -76,12 +91,11 @@ public function testSetOfflinePaymentMethod(string $methodCode)
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/set_new_shipping_address.php
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/enable_offline_payment_methods.php
*
* @param string $methodCode
*/
public function testSetPurchaseOrderPaymentMethod()
{
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote');
$methodTitle = 'Purchase Order';
$methodCode = Purchaseorder::PAYMENT_METHOD_PURCHASEORDER_CODE;
$poNumber = 'abc123';

Expand All @@ -97,34 +111,28 @@ public function testSetPurchaseOrderPaymentMethod()
cart {
selected_payment_method {
code
title
purchase_order_number
}
}
}
}
QUERY;

$response = $this->graphQlMutation($query, [], '', $this->getHeaderMap());

self::assertArrayHasKey('setPaymentMethodOnCart', $response);
self::assertArrayHasKey('cart', $response['setPaymentMethodOnCart']);
self::assertArrayHasKey('selected_payment_method', $response['setPaymentMethodOnCart']['cart']);
self::assertArrayHasKey('code', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
self::assertArrayHasKey('purchase_order_number', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
self::assertEquals($methodCode, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['code']);
self::assertEquals($poNumber, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['purchase_order_number']);
}

/**
* @return array
*/
public function offlinePaymentMethodDataProvider(): array
{
return [
'check_mo' => [Checkmo::PAYMENT_METHOD_CHECKMO_CODE],
'bank_transfer' => [Banktransfer::PAYMENT_METHOD_BANKTRANSFER_CODE],
'cash_on_delivery' => [Cashondelivery::PAYMENT_METHOD_CASHONDELIVERY_CODE],
];
$selectedPaymentMethod = $response['setPaymentMethodOnCart']['cart']['selected_payment_method'];
self::assertArrayHasKey('code', $selectedPaymentMethod);
self::assertEquals($methodCode, $selectedPaymentMethod['code']);

self::assertArrayHasKey('title', $selectedPaymentMethod);
self::assertEquals($methodTitle, $selectedPaymentMethod['title']);

self::assertArrayHasKey('purchase_order_number', $selectedPaymentMethod);
self::assertEquals($poNumber, $selectedPaymentMethod['purchase_order_number']);
}

/**
Expand All @@ -147,6 +155,7 @@ private function getQuery(
cart {
selected_payment_method {
code
title
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,23 +42,38 @@ protected function setUp()
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/enable_offline_payment_methods.php
*
* @param string $methodCode
* @param string $methodTitle
* @dataProvider offlinePaymentMethodDataProvider
*/
public function testSetOfflinePaymentMethod(string $methodCode)
public function testSetOfflinePaymentMethod(string $methodCode, string $methodTitle)
{
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote');

$query = $this->getQuery(
$maskedQuoteId,
$methodCode
);
$query = $this->getQuery($maskedQuoteId, $methodCode);
$response = $this->graphQlMutation($query);

self::assertArrayHasKey('setPaymentMethodOnCart', $response);
self::assertArrayHasKey('cart', $response['setPaymentMethodOnCart']);
self::assertArrayHasKey('selected_payment_method', $response['setPaymentMethodOnCart']['cart']);
self::assertArrayHasKey('code', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
self::assertEquals($methodCode, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['code']);

$selectedPaymentMethod = $response['setPaymentMethodOnCart']['cart']['selected_payment_method'];
self::assertArrayHasKey('code', $selectedPaymentMethod);
self::assertEquals($methodCode, $selectedPaymentMethod['code']);

self::assertArrayHasKey('title', $selectedPaymentMethod);
self::assertEquals($methodTitle, $selectedPaymentMethod['title']);
}

/**
* @return array
*/
public function offlinePaymentMethodDataProvider(): array
{
return [
'check_mo' => [Checkmo::PAYMENT_METHOD_CHECKMO_CODE, 'Check / Money order'],
'bank_transfer' => [Banktransfer::PAYMENT_METHOD_BANKTRANSFER_CODE, 'Bank Transfer Payment'],
'cash_on_delivery' => [Cashondelivery::PAYMENT_METHOD_CASHONDELIVERY_CODE, 'Cash On Delivery'],
];
}

/**
Expand All @@ -67,13 +82,12 @@ public function testSetOfflinePaymentMethod(string $methodCode)
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/set_new_shipping_address.php
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/enable_offline_payment_methods.php
*
* @param string $methodCode
*/
public function testSetPurchaseOrderPaymentMethod()
{
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote');
$methodCode = Purchaseorder::PAYMENT_METHOD_PURCHASEORDER_CODE;
$methodTitle = 'Purchase Order';
$poNumber = 'abc123';

$query = <<<QUERY
Expand All @@ -88,6 +102,7 @@ public function testSetPurchaseOrderPaymentMethod()
cart {
selected_payment_method {
code
title
purchase_order_number
}
}
Expand All @@ -100,22 +115,16 @@ public function testSetPurchaseOrderPaymentMethod()
self::assertArrayHasKey('setPaymentMethodOnCart', $response);
self::assertArrayHasKey('cart', $response['setPaymentMethodOnCart']);
self::assertArrayHasKey('selected_payment_method', $response['setPaymentMethodOnCart']['cart']);
self::assertArrayHasKey('code', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
self::assertArrayHasKey('purchase_order_number', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
self::assertEquals($methodCode, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['code']);
self::assertEquals($poNumber, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['purchase_order_number']);
}

/**
* @return array
*/
public function offlinePaymentMethodDataProvider(): array
{
return [
'check_mo' => [Checkmo::PAYMENT_METHOD_CHECKMO_CODE],
'bank_transfer' => [Banktransfer::PAYMENT_METHOD_BANKTRANSFER_CODE],
'cash_on_delivery' => [Cashondelivery::PAYMENT_METHOD_CASHONDELIVERY_CODE],
];
$selectedPaymentMethod = $response['setPaymentMethodOnCart']['cart']['selected_payment_method'];
self::assertArrayHasKey('code', $selectedPaymentMethod);
self::assertEquals($methodCode, $selectedPaymentMethod['code']);

self::assertArrayHasKey('title', $selectedPaymentMethod);
self::assertEquals($methodTitle, $selectedPaymentMethod['title']);

self::assertArrayHasKey('purchase_order_number', $selectedPaymentMethod);
self::assertEquals($poNumber, $selectedPaymentMethod['purchase_order_number']);
}

/**
Expand All @@ -138,6 +147,7 @@ private function getQuery(
cart {
selected_payment_method {
code
title
}
}
}
Expand Down

0 comments on commit 157f520

Please sign in to comment.