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);
 }