public function testAGraphNodeWillBeCastAsAGraphNode()
 {
     $data = json_encode(['id' => '123', 'name' => 'Foo McBar', 'link' => 'http://facebook/foo']);
     $res = new FacebookResponse($this->request, $data);
     $factory = new GraphObjectFactory($res);
     $graphObject = $factory->makeGraphObject();
     $graphData = $graphObject->asArray();
     $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphObject', $graphObject);
     $this->assertEquals(['id' => '123', 'name' => 'Foo McBar', 'link' => 'http://facebook/foo'], $graphData);
 }
 public function testAGraphObjectWithARootDataKeyWillBeCastAsAGraphObject()
 {
     $dataFromGraph = ['data' => ['id' => '123', 'name' => 'Foo McBar', 'link' => 'http://facebook/foo']];
     $this->responseMock->shouldReceive('getDecodedBody')->once()->andReturn($dataFromGraph);
     $factory = new GraphObjectFactory($this->responseMock);
     $graphObject = $factory->makeGraphObject();
     $graphData = $graphObject->asArray();
     $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphObject', $graphObject);
     $this->assertEquals(['id' => '123', 'name' => 'Foo McBar', 'link' => 'http://facebook/foo'], $graphData);
 }
 /**
  * Instantiate a new GraphObject from response.
  *
  * @param string|null $subclassName The GraphObject sub class to cast to.
  *
  * @return \Facebook\GraphNodes\GraphObject
  *
  * @throws FacebookSDKException
  */
 public function getGraphObject($subclassName = null)
 {
     $factory = new GraphObjectFactory($this);
     return $factory->makeGraphObject($subclassName);
 }