7
7
8
8
namespace Magento \GraphQlResolverCache \Model \Resolver \Result \Cache \KeyCalculator ;
9
9
10
+ use Magento \CustomerGraphQl \Model \Resolver \CacheKey \FactorProvider \CustomerGroup ;
10
11
use Magento \CustomerGraphQl \Model \Resolver \Customer ;
11
12
use Magento \CustomerGraphQl \Model \Resolver \CustomerAddresses ;
12
13
use Magento \Framework \GraphQl \Query \ResolverInterface ;
@@ -96,15 +97,19 @@ public function testProviderEmptyConfig()
96
97
public function testProviderKeyFactorsConfigured ()
97
98
{
98
99
$ this ->provider = $ this ->objectManager ->create (Provider::class, [
99
- 'factorProviders ' => [
100
- 'Magento\StoreGraphQl\Model\Resolver\StoreConfigResolver ' => [
101
- 'store ' => 'Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Store ' ,
102
- 'currency ' => 'Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Currency '
103
- ],
100
+ 'factorProviders ' => [
101
+ 'Magento\StoreGraphQl\Model\Resolver\StoreConfigResolver ' => [
102
+ 'store ' => 'Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Store ' ,
103
+ 'currency ' => 'Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Currency '
104
+ ],
105
+ 'StoreConfigDerivedMock ' => [
106
+ 'customer_group ' => 'Magento\CustomerGraphQl\Model\Resolver\CacheKey\FactorProvider\CustomerGroup '
104
107
]
105
- ]);
108
+ ]
109
+ ]);
106
110
$ resolver = $ this ->getMockBuilder (StoreConfigResolver::class)
107
111
->disableOriginalConstructor ()
112
+ ->setMockClassName ('StoreConfigDerivedMock ' )
108
113
->getMock ();
109
114
$ storeFactorMock = $ this ->getMockBuilder (StoreProvider::class)
110
115
->disableOriginalConstructor ()
@@ -114,6 +119,10 @@ public function testProviderKeyFactorsConfigured()
114
119
->disableOriginalConstructor ()
115
120
->onlyMethods (['getFactorName ' , 'getFactorValue ' ])
116
121
->getMock ();
122
+ $ customerGroupFactorMock = $ this ->getMockBuilder (CustomerGroup::class)
123
+ ->disableOriginalConstructor ()
124
+ ->onlyMethods (['getFactorName ' , 'getFactorValue ' ])
125
+ ->getMock ();
117
126
$ storeFactorMock ->expects ($ this ->any ())
118
127
->method ('getFactorName ' )
119
128
->withAnyParameters ()
@@ -131,15 +140,29 @@ public function testProviderKeyFactorsConfigured()
131
140
->method ('getFactorValue ' )
132
141
->withAnyParameters ()->willReturn ('USD ' );
133
142
143
+ $ customerGroupFactorMock ->expects ($ this ->any ())
144
+ ->method ('getFactorName ' )
145
+ ->withAnyParameters ()
146
+ ->willReturn ('CUSTOMER_GROUP ' );
147
+ $ customerGroupFactorMock ->expects ($ this ->any ())
148
+ ->method ('getFactorValue ' )
149
+ ->withAnyParameters ()
150
+ ->willReturn ('1 ' );
151
+
134
152
$ this ->objectManager ->addSharedInstance ($ storeFactorMock , StoreProvider::class);
135
153
$ this ->objectManager ->addSharedInstance ($ currencyFactorMock , CurrencyProvider::class);
136
- $ expectedKey = hash ('sha256 ' , strtoupper (implode ('| ' , ['currency ' => 'USD ' , 'store ' => 'default ' ])));
154
+ $ this ->objectManager ->addSharedInstance ($ customerGroupFactorMock , CustomerGroup::class);
155
+ $ expectedKey = hash (
156
+ 'sha256 ' ,
157
+ strtoupper (implode ('| ' , ['currency ' => 'USD ' , 'customer_group ' => '1 ' , 'store ' => 'default ' ]))
158
+ );
137
159
$ calc = $ this ->provider ->getKeyCalculatorForResolver ($ resolver );
138
160
$ key = $ calc ->calculateCacheKey ();
139
161
$ this ->assertNotEmpty ($ key );
140
162
$ this ->assertEquals ($ expectedKey , $ key );
141
163
$ this ->objectManager ->removeSharedInstance (StoreProvider::class);
142
164
$ this ->objectManager ->removeSharedInstance (CurrencyProvider::class);
165
+ $ this ->objectManager ->removeSharedInstance (CustomerGroup::class);
143
166
}
144
167
145
168
/**
0 commit comments