scopeConfigMock = $this->getMockForAbstractClass(ScopeConfigInterface::class); $this->storeManagerMock = $this->getMockForAbstractClass(StoreManagerInterface::class); $this->websiteMock = $this->getMockForAbstractClass(WebsiteInterface::class); $this->storeMock = $this->getMockForAbstractClass(StoreInterface::class); $this->configPaths = [ 'web/unsecure/base_url', 'currency/options/base', 'general/locale/timezone' ]; $this->storeConfigurationProvider = new StoreConfigurationProvider( $this->scopeConfigMock, $this->storeManagerMock, $this->configPaths ); } public function testGetReport() { $map = [ ['web/unsecure/base_url', 'default', 0, '127.0.0.1'], ['currency/options/base', 'default', 0, 'USD'], ['general/locale/timezone', 'default', 0, 'America/Dawson'], ['web/unsecure/base_url', 'websites', 1, '127.0.0.2'], ['currency/options/base', 'websites', 1, 'USD'], ['general/locale/timezone', 'websites', 1, 'America/Belem'], ['web/unsecure/base_url', 'stores', 2, '127.0.0.3'], ['currency/options/base', 'stores', 2, 'USD'], ['general/locale/timezone', 'stores', 2, 'America/Phoenix'], ]; $this->scopeConfigMock ->method('getValue') ->willReturnMap($map); $this->storeManagerMock->expects($this->once()) ->method('getWebsites') ->willReturn([$this->websiteMock]); $this->storeManagerMock->expects($this->once()) ->method('getStores') ->willReturn([$this->storeMock]); $this->websiteMock->expects($this->once()) ->method('getId') ->willReturn(1); $this->storeMock->expects($this->once()) ->method('getId') ->willReturn(2); $result = iterator_to_array($this->storeConfigurationProvider->getReport()); $resultValues = []; foreach ($result as $item) { $resultValues[] = array_values($item); } array_multisort($resultValues); array_multisort($map); $this->assertEquals($resultValues, $map); } }