public function testGetStoreConfigs() { $id = 1; $code = 'default'; $websiteId = 1; $baseUrl = 'http://magento/base_url'; $secureBaseUrl = 'https://magento/base_url'; $baseLinkUrl = 'http://magento/base_url/links'; $secureBaseLinkUrl = 'https://magento/base_url/links'; $baseStaticUrl = 'http://magento/base_url/pub/static'; $secureBaseStaticUrl = 'https://magento/base_url/static'; $baseMediaUrl = 'http://magento/base_url/pub/media'; $secureBaseMediaUrl = 'https://magento/base_url/pub/media'; $locale = 'en_US'; $timeZone = 'America/Los_Angeles'; $baseCurrencyCode = 'USD'; $defaultDisplayCurrencyCode = 'GBP'; $weightUnit = 'lbs'; $storeMocks = []; $storeConfigs = ['id' => $id, 'code' => $code, 'website_id' => $websiteId, 'base_url' => $baseUrl, 'secure_base_url' => $secureBaseUrl, 'base_link_url' => $baseLinkUrl, 'secure_base_link_url' => $secureBaseLinkUrl, 'base_static_url' => $baseStaticUrl, 'secure_base_static_url' => $secureBaseStaticUrl, 'base_media_url' => $baseMediaUrl, 'secure_base_media_url' => $secureBaseMediaUrl]; $storeMocks[] = $this->getStoreMock($storeConfigs); $storeCollectionMock = $this->getMockBuilder('\\Magento\\Store\\Model\\ResourceModel\\Store\\Collection')->disableOriginalConstructor()->getMock(); $storeCollectionMock->expects($this->once())->method('addFieldToFilter')->with('code', ['in' => [$code]])->willReturnSelf(); $storeCollectionMock->expects($this->once())->method('load')->willReturn($storeMocks); $this->storeCollectionFactoryMock->expects($this->once())->method('create')->willReturn($storeCollectionMock); $storeConfigDataObject = $this->createStoreConfigDataObject(); $this->storeConfigFactoryMock->expects($this->once())->method('create')->willReturn($storeConfigDataObject); $configValues = [['general/locale/code', ScopeInterface::SCOPE_STORES, $code, $locale], ['currency/options/base', ScopeInterface::SCOPE_STORES, $code, $baseCurrencyCode], ['currency/options/default', ScopeInterface::SCOPE_STORES, $code, $defaultDisplayCurrencyCode], ['general/locale/timezone', ScopeInterface::SCOPE_STORES, $code, $timeZone], [\Magento\Directory\Helper\Data::XML_PATH_WEIGHT_UNIT, ScopeInterface::SCOPE_STORES, $code, $weightUnit]]; $this->scopeConfigMock->expects($this->any())->method('getValue')->willReturnMap($configValues); $result = $this->model->getStoreConfigs([$code]); $this->assertEquals(1, count($result)); $this->assertEquals($id, $result[0]->getId()); $this->assertEquals($code, $result[0]->getCode()); $this->assertEquals($weightUnit, $result[0]->getWeightUnit()); $this->assertEquals($baseUrl, $result[0]->getBaseUrl()); $this->assertEquals($secureBaseUrl, $result[0]->getSecureBaseUrl()); $this->assertEquals($baseLinkUrl, $result[0]->getBaseLinkUrl()); $this->assertEquals($secureBaseLinkUrl, $result[0]->getSecureBaseLinkUrl()); $this->assertEquals($baseStaticUrl, $result[0]->getBaseStaticUrl()); $this->assertEquals($secureBaseStaticUrl, $result[0]->getSecureBaseStaticUrl()); $this->assertEquals($baseMediaUrl, $result[0]->getBaseMediaUrl()); $this->assertEquals($secureBaseMediaUrl, $result[0]->getSecureBaseMediaUrl()); $this->assertEquals($timeZone, $result[0]->getTimezone()); $this->assertEquals($locale, $result[0]->getLocale()); $this->assertEquals($baseCurrencyCode, $result[0]->getBaseCurrencyCode()); $this->assertEquals($defaultDisplayCurrencyCode, $result[0]->getDefaultDisplayCurrencyCode()); }
/** * @param \Magento\Store\Model\Store $store * @return \Magento\Store\Api\Data\StoreConfigInterface */ protected function getStoreConfig($store) { /** @var \Magento\Store\Model\Data\StoreConfig $storeConfig */ $storeConfig = $this->storeConfigFactory->create(); $storeConfig->setId($store->getId())->setCode($store->getCode())->setWebsiteId($store->getWebsiteId()); foreach ($this->configPaths as $methodName => $configPath) { $configValue = $this->scopeConfig->getValue($configPath, \Magento\Store\Model\ScopeInterface::SCOPE_STORES, $store->getCode()); $storeConfig->{$methodName}($configValue); } $storeConfig->setBaseUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB, false)); $storeConfig->setSecureBaseUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB, true)); $storeConfig->setBaseLinkUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK, false)); $storeConfig->setSecureBaseLinkUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK, true)); $storeConfig->setBaseStaticUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, false)); $storeConfig->setSecureBaseStaticUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, true)); $storeConfig->setBaseMediaUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, false)); $storeConfig->setSecureBaseMediaUrl($store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, true)); return $storeConfig; }