public function testDefinesAQueryOnlySchema()
{
$blogSchema = new Schema($this->blogQuery);
$this->assertSame($blogSchema->getQueryType(), $this->blogQuery);
$articleField = $this->blogQuery->getField('article');
$this->assertSame($articleField->getType(), $this->blogArticle);
$this->assertSame($articleField->getType()->name, 'Article');
$this->assertSame($articleField->name, 'article');
/** @var ObjectType $articleFieldType */
$articleFieldType = $articleField->getType();
$titleField = $articleFieldType->getField('title');
$this->assertInstanceOf('GraphQL\\Type\\Definition\\FieldDefinition', $titleField);
$this->assertSame('title', $titleField->name);
$this->assertSame(Type::string(), $titleField->getType());
$authorField = $articleFieldType->getField('author');
$this->assertInstanceOf('GraphQL\\Type\\Definition\\FieldDefinition', $authorField);
/** @var ObjectType $authorFieldType */
$authorFieldType = $authorField->getType();
$this->assertSame($this->blogAuthor, $authorFieldType);
$recentArticleField = $authorFieldType->getField('recentArticle');
$this->assertInstanceOf('GraphQL\\Type\\Definition\\FieldDefinition', $recentArticleField);
$this->assertSame($this->blogArticle, $recentArticleField->getType());
$feedField = $this->blogQuery->getField('feed');
$this->assertInstanceOf('GraphQL\\Type\\Definition\\FieldDefinition', $feedField);
/** @var ListOfType $feedFieldType */
$feedFieldType = $feedField->getType();
$this->assertInstanceOf('GraphQL\\Type\\Definition\\ListOfType', $feedFieldType);
$this->assertSame($this->blogArticle, $feedFieldType->getWrappedType());
}