responseMock = m::mock('\\Facebook\\FacebookResponse'); } public function testDatesGetCastToDateTime() { $dataFromGraph = [ 'birthday' => '1984-01-01', ]; $this->responseMock ->shouldReceive('getDecodedBody') ->once() ->andReturn($dataFromGraph); $factory = new GraphNodeFactory($this->responseMock); $graphNode = $factory->makeGraphUser(); $birthday = $graphNode->getBirthday(); $this->assertInstanceOf('DateTime', $birthday); } public function testPagePropertiesWillGetCastAsGraphPageObjects() { $dataFromGraph = [ 'id' => '123', 'name' => 'Foo User', 'hometown' => [ 'id' => '1', 'name' => 'Foo Place', ], 'location' => [ 'id' => '2', 'name' => 'Bar Place', ], ]; $this->responseMock ->shouldReceive('getDecodedBody') ->once() ->andReturn($dataFromGraph); $factory = new GraphNodeFactory($this->responseMock); $graphNode = $factory->makeGraphUser(); $hometown = $graphNode->getHometown(); $location = $graphNode->getLocation(); $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphPage', $hometown); $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphPage', $location); } public function testUserPropertiesWillGetCastAsGraphUserObjects() { $dataFromGraph = [ 'id' => '123', 'name' => 'Foo User', 'significant_other' => [ 'id' => '1337', 'name' => 'Bar User', ], ]; $this->responseMock ->shouldReceive('getDecodedBody') ->once() ->andReturn($dataFromGraph); $factory = new GraphNodeFactory($this->responseMock); $graphNode = $factory->makeGraphUser(); $significantOther = $graphNode->getSignificantOther(); $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphUser', $significantOther); } public function testPicturePropertiesWillGetCastAsGraphPictureObjects() { $dataFromGraph = [ 'id' => '123', 'name' => 'Foo User', 'picture' => [ 'is_silhouette' => true, 'url' => 'http://foo.bar', 'width' => 200, 'height' => 200, ], ]; $this->responseMock ->shouldReceive('getDecodedBody') ->once() ->andReturn($dataFromGraph); $factory = new GraphNodeFactory($this->responseMock); $graphNode = $factory->makeGraphUser(); $Picture = $graphNode->getPicture(); $this->assertInstanceOf('\\Facebook\\GraphNodes\\GraphPicture', $Picture); $this->assertTrue($Picture->isSilhouette()); $this->assertEquals(200, $Picture->getWidth()); $this->assertEquals(200, $Picture->getHeight()); $this->assertEquals('http://foo.bar', $Picture->getUrl()); } }