77
88namespace Magento \GraphQl \Quote \Customer ;
99
10+ use Magento \GraphQl \Quote \GetMaskedQuoteIdByReservedOrderId ;
1011use Magento \Integration \Api \CustomerTokenServiceInterface ;
11- use Magento \Quote \Model \QuoteFactory ;
12- use Magento \Quote \Model \QuoteIdToMaskedQuoteIdInterface ;
13- use Magento \Quote \Model \ResourceModel \Quote as QuoteResource ;
1412use Magento \TestFramework \Helper \Bootstrap ;
1513use Magento \TestFramework \TestCase \GraphQlAbstract ;
1614
@@ -25,75 +23,71 @@ class GetAvailablePaymentMethodsTest extends GraphQlAbstract
2523 private $ customerTokenService ;
2624
2725 /**
28- * @var QuoteResource
26+ * @var GetMaskedQuoteIdByReservedOrderId
2927 */
30- private $ quoteResource ;
31-
32- /**
33- * @var QuoteFactory
34- */
35- private $ quoteFactory ;
36-
37- /**
38- * @var QuoteIdToMaskedQuoteIdInterface
39- */
40- private $ quoteIdToMaskedId ;
28+ private $ getMaskedQuoteIdByReservedOrderId ;
4129
4230 /**
4331 * @inheritdoc
4432 */
4533 protected function setUp ()
4634 {
4735 $ objectManager = Bootstrap::getObjectManager ();
48- $ this ->quoteResource = $ objectManager ->get (QuoteResource::class);
49- $ this ->quoteFactory = $ objectManager ->get (QuoteFactory::class);
50- $ this ->quoteIdToMaskedId = $ objectManager ->get (QuoteIdToMaskedQuoteIdInterface::class);
36+ $ this ->getMaskedQuoteIdByReservedOrderId = $ objectManager ->get (GetMaskedQuoteIdByReservedOrderId::class);
5137 $ this ->customerTokenService = $ objectManager ->get (CustomerTokenServiceInterface::class);
5238 }
5339
5440 /**
55- * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
41+ * @magentoApiDataFixture Magento/Customer/_files/customer.php
42+ * @magentoApiDataFixture Magento/Catalog/_files/product_simple.php
43+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/customer/create_empty_cart.php
44+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php
45+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/set_new_shipping_address.php
5646 */
57- public function testGetCartWithPaymentMethods ()
47+ public function testGetAvailablePaymentMethods ()
5848 {
59- $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId ( ' test_order_item_with_items ' );
49+ $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId -> execute ( ' test_quote ' );
6050 $ query = $ this ->getQuery ($ maskedQuoteId );
6151 $ response = $ this ->graphQlQuery ($ query , [], '' , $ this ->getHeaderMap ());
6252
6353 self ::assertArrayHasKey ('cart ' , $ response );
54+ self ::assertArrayHasKey ('available_payment_methods ' , $ response ['cart ' ]);
55+ self ::assertCount (1 , $ response ['cart ' ]['available_payment_methods ' ]);
56+
6457 self ::assertEquals ('checkmo ' , $ response ['cart ' ]['available_payment_methods ' ][0 ]['code ' ]);
6558 self ::assertEquals ('Check / Money order ' , $ response ['cart ' ]['available_payment_methods ' ][0 ]['title ' ]);
66- self ::assertGreaterThan (
67- 0 ,
68- count ($ response ['cart ' ]['available_payment_methods ' ]),
69- 'There are no available payment methods for customer cart! '
70- );
7159 }
7260
7361 /**
62+ * @security
7463 * @magentoApiDataFixture Magento/Customer/_files/customer.php
75- * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
64+ * @magentoApiDataFixture Magento/Catalog/_files/product_simple.php
65+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php
66+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php
67+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/set_new_shipping_address.php
7668 */
77- public function testGetPaymentMethodsFromGuestCart ()
69+ public function testGetAvailablePaymentMethodsFromGuestCart ()
7870 {
79- $ guestQuoteMaskedId = $ this ->getMaskedQuoteIdByReservedOrderId (
80- 'test_order_with_virtual_product_without_address '
81- );
82- $ query = $ this ->getQuery ($ guestQuoteMaskedId );
71+ $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId ->execute ('test_quote ' );
72+ $ query = $ this ->getQuery ($ maskedQuoteId );
8373
8474 $ this ->expectExceptionMessage (
85- "The current user cannot perform operations on cart \"$ guestQuoteMaskedId \""
75+ "The current user cannot perform operations on cart \"$ maskedQuoteId \""
8676 );
8777 $ this ->graphQlQuery ($ query , [], '' , $ this ->getHeaderMap ());
8878 }
8979
9080 /**
81+ * @security
9182 * @magentoApiDataFixture Magento/Customer/_files/three_customers.php
92- * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
83+ * @magentoApiDataFixture Magento/Catalog/_files/product_simple.php
84+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/customer/create_empty_cart.php
85+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php
86+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/set_new_shipping_address.php
9387 */
94- public function testGetPaymentMethodsFromAnotherCustomerCart ()
88+ public function testGetAvailablePaymentMethodsFromAnotherCustomerCart ()
9589 {
96- $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId ( ' test_order_item_with_items ' );
90+ $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId -> execute ( ' test_quote ' );
9791 $ query = $ this ->getQuery ($ maskedQuoteId );
9892
9993 $ this ->expectExceptionMessage (
@@ -103,24 +97,31 @@ public function testGetPaymentMethodsFromAnotherCustomerCart()
10397 }
10498
10599 /**
106- * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
107- * @magentoApiDataFixture Magento/Payment/_files/disable_all_active_payment_methods.php
100+ * @magentoApiDataFixture Magento/Customer/_files/customer.php
101+ * @magentoApiDataFixture Magento/Catalog/_files/product_simple.php
102+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/customer/create_empty_cart.php
103+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php
104+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/set_new_shipping_address.php
105+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/disable_all_active_payment_methods.php
108106 */
109- public function testGetPaymentMethodsIfPaymentsAreNotSet ()
107+ public function testGetAvailablePaymentMethodsIfPaymentsAreNotPresent ()
110108 {
111- $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId ( ' test_order_item_with_items ' );
109+ $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId -> execute ( ' test_quote ' );
112110 $ query = $ this ->getQuery ($ maskedQuoteId );
113111 $ response = $ this ->graphQlQuery ($ query , [], '' , $ this ->getHeaderMap ());
114112
115- self ::assertEquals (0 , count ($ response ['cart ' ]['available_payment_methods ' ]));
113+ self ::assertArrayHasKey ('cart ' , $ response );
114+ self ::assertArrayHasKey ('available_payment_methods ' , $ response ['cart ' ]);
115+ self ::assertEmpty ($ response ['cart ' ]['available_payment_methods ' ]);
116116 }
117117
118118 /**
119119 * @magentoApiDataFixture Magento/Customer/_files/customer.php
120+ *
120121 * @expectedException \Exception
121122 * @expectedExceptionMessage Could not find a cart with ID "non_existent_masked_id"
122123 */
123- public function testGetPaymentMethodsOfNonExistentCart ()
124+ public function testGetAvailablePaymentMethodsOfNonExistentCart ()
124125 {
125126 $ maskedQuoteId = 'non_existent_masked_id ' ;
126127 $ query = $ this ->getQuery ($ maskedQuoteId );
@@ -132,9 +133,8 @@ public function testGetPaymentMethodsOfNonExistentCart()
132133 * @param string $maskedQuoteId
133134 * @return string
134135 */
135- private function getQuery (
136- string $ maskedQuoteId
137- ): string {
136+ private function getQuery (string $ maskedQuoteId ): string
137+ {
138138 return <<<QUERY
139139{
140140 cart(cart_id: " $ maskedQuoteId") {
@@ -158,16 +158,4 @@ private function getHeaderMap(string $username = '
[email protected] ', string
158158 $ headerMap = ['Authorization ' => 'Bearer ' . $ customerToken ];
159159 return $ headerMap ;
160160 }
161-
162- /**
163- * @param string $reservedOrderId
164- * @return string
165- */
166- private function getMaskedQuoteIdByReservedOrderId (string $ reservedOrderId ): string
167- {
168- $ quote = $ this ->quoteFactory ->create ();
169- $ this ->quoteResource ->load ($ quote , $ reservedOrderId , 'reserved_order_id ' );
170-
171- return $ this ->quoteIdToMaskedId ->execute ((int )$ quote ->getId ());
172- }
173161}
0 commit comments