7
7
8
8
namespace Magento \GraphQl \Store ;
9
9
10
+ use Magento \Framework \App \Config \ScopeConfigInterface ;
10
11
use Magento \Store \Api \Data \StoreConfigInterface ;
11
12
use Magento \Store \Api \StoreConfigManagerInterface ;
12
13
use Magento \Store \Api \StoreRepositoryInterface ;
13
14
use Magento \Store \Api \StoreResolverInterface ;
15
+ use Magento \Store \Model \ScopeInterface ;
16
+ use Magento \TestFramework \Helper \Bootstrap ;
14
17
use Magento \TestFramework \ObjectManager ;
15
18
use Magento \TestFramework \TestCase \GraphQlAbstract ;
16
19
@@ -25,25 +28,28 @@ class StoreConfigResolverTest extends GraphQlAbstract
25
28
26
29
protected function setUp (): void
27
30
{
28
- $ this ->objectManager = \ Magento \ TestFramework \ Helper \ Bootstrap::getObjectManager ();
31
+ $ this ->objectManager = Bootstrap::getObjectManager ();
29
32
}
30
33
31
34
/**
32
35
* @magentoApiDataFixture Magento/Store/_files/store.php
33
- * @magentoConfigFixture default_store store/information/name Test Store
36
+ * @magentoConfigFixture default_store store/information/name Default Store
37
+ * @magentoConfigFixture test_store store/information/name Test Store
34
38
*/
35
39
public function testGetStoreConfig ()
36
40
{
37
- /** @var StoreConfigManagerInterface $storeConfigsManager */
38
- $ storeConfigsManager = $ this ->objectManager ->get (StoreConfigManagerInterface::class);
41
+ /** @var StoreConfigManagerInterface $defaultStoreConfigsManager */
42
+ $ defaultStoreConfigsManager = $ this ->objectManager ->get (StoreConfigManagerInterface::class);
39
43
/** @var StoreResolverInterface $storeResolver */
40
44
$ storeResolver = $ this ->objectManager ->get (StoreResolverInterface::class);
41
45
/** @var StoreRepositoryInterface $storeRepository */
42
46
$ storeRepository = $ this ->objectManager ->get (StoreRepositoryInterface::class);
43
47
$ storeId = $ storeResolver ->getCurrentStoreId ();
44
48
$ store = $ storeRepository ->getById ($ storeId );
45
- /** @var StoreConfigInterface $storeConfig */
46
- $ storeConfig = current ($ storeConfigsManager ->getStoreConfigs ([$ store ->getCode ()]));
49
+ /** @var StoreConfigInterface $defaultStoreConfig */
50
+ $ defaultStoreConfig = current ($ defaultStoreConfigsManager ->getStoreConfigs ([$ store ->getCode ()]));
51
+ /** @var StoreConfigInterface $storeConfigs */
52
+ $ storeConfigs = $ defaultStoreConfigsManager ->getStoreConfigs ();
47
53
$ query
48
54
= <<<QUERY
49
55
{
@@ -65,32 +71,71 @@ public function testGetStoreConfig()
65
71
secure_base_static_url,
66
72
secure_base_media_url,
67
73
store_name
74
+ stores {
75
+ id,
76
+ code,
77
+ website_id,
78
+ locale,
79
+ base_currency_code,
80
+ default_display_currency_code,
81
+ timezone,
82
+ weight_unit,
83
+ base_url,
84
+ base_link_url,
85
+ base_static_url,
86
+ base_media_url,
87
+ secure_base_url,
88
+ secure_base_link_url,
89
+ secure_base_static_url,
90
+ secure_base_media_url,
91
+ store_name
92
+ }
68
93
}
69
94
}
70
95
QUERY ;
71
96
$ response = $ this ->graphQlQuery ($ query );
72
97
$ this ->assertArrayHasKey ('storeConfig ' , $ response );
73
- $ this ->assertEquals ($ storeConfig ->getId (), $ response ['storeConfig ' ]['id ' ]);
74
- $ this ->assertEquals ($ storeConfig ->getCode (), $ response ['storeConfig ' ]['code ' ]);
75
- $ this ->assertEquals ($ storeConfig ->getLocale (), $ response ['storeConfig ' ]['locale ' ]);
76
- $ this ->assertEquals ($ storeConfig ->getBaseCurrencyCode (), $ response ['storeConfig ' ]['base_currency_code ' ]);
98
+ $ this ->validateStoreConfig ($ defaultStoreConfig , $ response ['storeConfig ' ]);
99
+
100
+ $ this ->assertArrayHasKey ('stores ' , $ response ['storeConfig ' ]);
101
+ foreach ($ storeConfigs as $ key => $ storeConfig ) {
102
+ $ this ->assertArrayHasKey ($ key , $ response ['storeConfig ' ]['stores ' ]);
103
+ $ this ->validateStoreConfig ($ storeConfig , $ response ['storeConfig ' ]['stores ' ][$ key ]);
104
+ }
105
+ }
106
+
107
+ /**
108
+ * Validate Store Config Data
109
+ *
110
+ * @param StoreConfigInterface $storeConfig
111
+ * @param array $responseConfig
112
+ */
113
+ private function validateStoreConfig ($ storeConfig , $ responseConfig ): void
114
+ {
115
+ /* @var $scopeConfig ScopeConfigInterface */
116
+ $ scopeConfig = $ this ->objectManager ->get (ScopeConfigInterface::class);
117
+ $ this ->assertEquals ($ storeConfig ->getId (), $ responseConfig ['id ' ]);
118
+ $ this ->assertEquals ($ storeConfig ->getCode (), $ responseConfig ['code ' ]);
119
+ $ this ->assertEquals ($ storeConfig ->getLocale (), $ responseConfig ['locale ' ]);
120
+ $ this ->assertEquals ($ storeConfig ->getBaseCurrencyCode (), $ responseConfig ['base_currency_code ' ]);
77
121
$ this ->assertEquals (
78
122
$ storeConfig ->getDefaultDisplayCurrencyCode (),
79
- $ response ['storeConfig ' ]['default_display_currency_code ' ]
80
- );
81
- $ this ->assertEquals ($ storeConfig ->getTimezone (), $ response ['storeConfig ' ]['timezone ' ]);
82
- $ this ->assertEquals ($ storeConfig ->getWeightUnit (), $ response ['storeConfig ' ]['weight_unit ' ]);
83
- $ this ->assertEquals ($ storeConfig ->getBaseUrl (), $ response ['storeConfig ' ]['base_url ' ]);
84
- $ this ->assertEquals ($ storeConfig ->getBaseLinkUrl (), $ response ['storeConfig ' ]['base_link_url ' ]);
85
- $ this ->assertEquals ($ storeConfig ->getBaseStaticUrl (), $ response ['storeConfig ' ]['base_static_url ' ]);
86
- $ this ->assertEquals ($ storeConfig ->getBaseMediaUrl (), $ response ['storeConfig ' ]['base_media_url ' ]);
87
- $ this ->assertEquals ($ storeConfig ->getSecureBaseUrl (), $ response ['storeConfig ' ]['secure_base_url ' ]);
88
- $ this ->assertEquals ($ storeConfig ->getSecureBaseLinkUrl (), $ response ['storeConfig ' ]['secure_base_link_url ' ]);
89
- $ this ->assertEquals (
90
- $ storeConfig ->getSecureBaseStaticUrl (),
91
- $ response ['storeConfig ' ]['secure_base_static_url ' ]
123
+ $ responseConfig ['default_display_currency_code ' ]
92
124
);
93
- $ this ->assertEquals ($ storeConfig ->getSecureBaseMediaUrl (), $ response ['storeConfig ' ]['secure_base_media_url ' ]);
94
- $ this ->assertEquals ('Test Store ' , $ response ['storeConfig ' ]['store_name ' ]);
125
+ $ this ->assertEquals ($ storeConfig ->getTimezone (), $ responseConfig ['timezone ' ]);
126
+ $ this ->assertEquals ($ storeConfig ->getWeightUnit (), $ responseConfig ['weight_unit ' ]);
127
+ $ this ->assertEquals ($ storeConfig ->getBaseUrl (), $ responseConfig ['base_url ' ]);
128
+ $ this ->assertEquals ($ storeConfig ->getBaseLinkUrl (), $ responseConfig ['base_link_url ' ]);
129
+ $ this ->assertEquals ($ storeConfig ->getBaseStaticUrl (), $ responseConfig ['base_static_url ' ]);
130
+ $ this ->assertEquals ($ storeConfig ->getBaseMediaUrl (), $ responseConfig ['base_media_url ' ]);
131
+ $ this ->assertEquals ($ storeConfig ->getSecureBaseUrl (), $ responseConfig ['secure_base_url ' ]);
132
+ $ this ->assertEquals ($ storeConfig ->getSecureBaseLinkUrl (), $ responseConfig ['secure_base_link_url ' ]);
133
+ $ this ->assertEquals ($ storeConfig ->getSecureBaseStaticUrl (), $ responseConfig ['secure_base_static_url ' ]);
134
+ $ this ->assertEquals ($ storeConfig ->getSecureBaseMediaUrl (), $ responseConfig ['secure_base_media_url ' ]);
135
+ $ this ->assertEquals ($ scopeConfig ->getValue (
136
+ 'store/information/name ' ,
137
+ ScopeInterface::SCOPE_STORE ,
138
+ $ storeConfig ->getId ()
139
+ ), $ responseConfig ['store_name ' ]);
95
140
}
96
141
}
0 commit comments