private function getExceptedSchemaContainer()
 {
     if (self::$expectedSchema !== null) {
         return self::$expectedSchema;
     }
     $idField = new Field();
     $idField->setName('id')->setDescription('The user primary key')->setType('Int');
     $nameField = new Field();
     $nameField->setName('name')->setDescription('The user name')->setType('String');
     $emailField = new Field();
     $emailField->setName('email')->setDescription('The user email')->setType('String');
     $friendsField = new Field();
     $friendsField->setName('friends')->setDescription('The user friends')->setType('[User]')->setResolveConfig('AppBundle\\Entity\\Friend');
     $userType = new Type();
     $userType->setName('User')->setDescription('User type description')->setExtends('Item')->setFields([$idField, $nameField, $emailField, $friendsField]);
     $idField = new Field();
     $idField->setName('id')->setDescription('The item primary key')->setType('Int');
     $nameField = new Field();
     $nameField->setName('name')->setDescription('The item name')->setType('String');
     $interface = new InterfaceType();
     $interface->setName('Item')->setDescription('Item interface description')->setFields([$idField, $nameField]);
     $idArg = new Field();
     $idArg->setName('id')->setDescription('The ID')->setType('Int');
     $adminField = new Field();
     $adminField->setName('admin')->setDescription('Admin description')->setType('[User]')->setResolveConfig('AppBundle\\Entity\\User')->setArguments([$idArg]);
     $idArg = clone $idArg;
     $userField = new Field();
     $userField->setName('user')->setDescription('User description')->setType('User')->setResolveConfig('AppBundle\\Entity\\User')->setArguments([$idArg]);
     $query = new Query();
     $query->setDescription('The root query description')->setFields([$adminField, $userField]);
     $schema = new SchemaContainer();
     $schema->addType($userType)->addInterface($interface)->setQuerySchema($query);
     return self::$expectedSchema = $schema;
 }