8
8
namespace Magento \GraphQl \Quote \Guest ;
9
9
10
10
use Magento \GraphQl \Quote \GetMaskedQuoteIdByReservedOrderId ;
11
+ use Magento \Quote \Model \Quote \Address ;
12
+ use Magento \Quote \Model \QuoteFactory ;
13
+ use Magento \Quote \Model \ResourceModel \Quote as QuoteResource ;
11
14
use Magento \TestFramework \Helper \Bootstrap ;
12
15
use Magento \TestFramework \TestCase \GraphQlAbstract ;
13
16
@@ -21,10 +24,22 @@ class SetGuestEmailOnCartTest extends GraphQlAbstract
21
24
*/
22
25
private $ getMaskedQuoteIdByReservedOrderId ;
23
26
27
+ /**
28
+ * @var QuoteFactory
29
+ */
30
+ private $ quoteFactory ;
31
+
32
+ /**
33
+ * @var QuoteResource
34
+ */
35
+ private $ quoteResource ;
36
+
24
37
protected function setUp (): void
25
38
{
26
39
$ objectManager = Bootstrap::getObjectManager ();
27
40
$ this ->getMaskedQuoteIdByReservedOrderId = $ objectManager ->get (GetMaskedQuoteIdByReservedOrderId::class);
41
+ $ this ->quoteFactory = $ objectManager ->get (QuoteFactory::class);
42
+ $ this ->quoteResource = $ objectManager ->get (QuoteResource::class);
28
43
}
29
44
30
45
/**
@@ -43,6 +58,33 @@ public function testSetGuestEmailOnCart()
43
58
$ this ->assertEquals ($ email , $ response ['setGuestEmailOnCart ' ]['cart ' ]['email ' ]);
44
59
}
45
60
61
+ /**
62
+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php
63
+ */
64
+ public function testSetGuestEmailOnCartWithDifferentEmailAddress ()
65
+ {
66
+ $ reservedOrderId = 'test_quote ' ;
67
+ $ secondEmail = 'attempt2@example.com ' ;
68
+ $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId ->execute ($ reservedOrderId );
69
+
70
+ $ email = 'attempt1@example.com ' ;
71
+ $ query = $ this ->getQuery ($ maskedQuoteId , $ email );
72
+ $ this ->graphQlMutation ($ query );
73
+
74
+ $ query = $ this ->getQuery ($ maskedQuoteId , $ secondEmail );
75
+ $ this ->graphQlMutation ($ query );
76
+
77
+ $ quote = $ this ->quoteFactory ->create ();
78
+ $ this ->quoteResource ->load ($ quote , $ reservedOrderId , 'reserved_order_id ' );
79
+ $ addresses = $ quote ->getAddressesCollection ();
80
+ $ this ->assertEquals (2 , $ addresses ->count ());
81
+ foreach ($ addresses as $ address ) {
82
+ if ($ address ->getAddressType () === Address::ADDRESS_TYPE_SHIPPING ) {
83
+ $ this ->assertEquals ($ secondEmail , $ address ->getEmail ());
84
+ }
85
+ }
86
+ }
87
+
46
88
/**
47
89
* _security
48
90
* @magentoApiDataFixture Magento/Customer/_files/customer.php
0 commit comments