responseMock = m::mock('\\Facebook\\FacebookResponse'); } public function testPagePropertiesReturnGraphPageObjects() { $dataFromGraph = [ 'id' => '123', 'name' => 'Foo Page', 'best_page' => [ 'id' => '1', 'name' => 'Bar Page', ], 'global_brand_parent_page' => [ 'id' => '2', 'name' => 'Faz Page', ], ]; $this->responseMock ->shouldReceive('getDecodedBody') ->once() ->andReturn($dataFromGraph); $factory = new GraphNodeFactory($this->responseMock); $graphNode = $factory->makeGraphPage(); $bestPage = $graphNode->getBestPage(); $globalBrandParentPage = $graphNode->getGlobalBrandParentPage(); $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphPage', $bestPage); $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphPage', $globalBrandParentPage); } public function testLocationPropertyWillGetCastAsGraphLocationObject() { $dataFromGraph = [ 'id' => '123', 'name' => 'Foo Page', 'location' => [ 'city' => 'Washington', 'country' => 'United States', 'latitude' => 38.881634205431, 'longitude' => -77.029121075722, 'state' => 'DC', ], ]; $this->responseMock ->shouldReceive('getDecodedBody') ->once() ->andReturn($dataFromGraph); $factory = new GraphNodeFactory($this->responseMock); $graphNode = $factory->makeGraphPage(); $location = $graphNode->getLocation(); $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphLocation', $location); } }