/** * {@inheritdoc} */ public function getLocaleCode() { $availableLocalesCodes = $this->localeProvider->getAvailableLocalesCodes(); try { $localeCode = $this->localeStorage->get($this->channelContext->getChannel()); } catch (ChannelNotFoundException $exception) { throw new LocaleNotFoundException(null, $exception); } if (!in_array($localeCode, $availableLocalesCodes, true)) { throw LocaleNotFoundException::notAvailable($localeCode, $availableLocalesCodes); } return $localeCode; }
function it_throws_an_exception_if_locale_taken_from_storage_is_not_available(ChannelContextInterface $channelContext, LocaleStorageInterface $localeStorage, LocaleProviderInterface $localeProvider, ChannelInterface $channel) { $channelContext->getChannel()->willReturn($channel); $localeStorage->get($channel)->willReturn('pl_PL'); $localeProvider->getAvailableLocalesCodes()->willReturn(['en_US', 'en_UK']); $this->shouldThrow(LocaleNotFoundException::class)->during('getLocaleCode'); }