protected function setUp() { $anItemsLoaderManager = new ItemsLoaderManager(); $anItemsLoader = new ItemsLoaderMock(); $anItemsLoaderManager->setInvokableClass($anItemsLoader->name(), get_class($anItemsLoader)); LazyItemsLoader::setItemsLoaderManager($anItemsLoaderManager); $this->lazyItemsLoader = new LazyItemsLoader($anItemsLoader); }
/** * @param string $jsonString * @return LazyItemsLoader * @throws \RuntimeException */ public static function fromJSON($jsonString) { if (is_null(static::$itemsLoaderManager)) { throw new \RuntimeException('ItemsLoaderManager is missing'); } Assertion::isJsonString($jsonString); $anItemsLoaderName = json_decode($jsonString); Assertion::string($anItemsLoaderName); $anItemsLoader = static::$itemsLoaderManager->get($anItemsLoaderName); return new LazyItemsLoader($anItemsLoader); }