@@ -370,6 +370,82 @@ public function testGetPageInsightsMetricsDataShouldBatchLongPeriodRequests()
370370 $ this ->assertEquals ($ insightsData ["page_fans " ]["2017-05-29T07:00:00+0000 " ], 111 );
371371 }
372372
373+ public function testGetPageInsightsAudienceData ()
374+ {
375+ $ decodedAudienceData = [
376+ 'data ' => [
377+ 0 => [
378+ 'name ' => 'follower_demographics ' ,
379+ 'period ' => 'lifetime ' ,
380+ 'total_value ' => [
381+ 'breakdowns ' => [
382+ 0 => [
383+ 'dimension_keys ' => ['city ' ],
384+ 'results ' => [
385+ 0 => [
386+ 'dimension_values ' => ['Sydney, New South Wales ' ],
387+ 'value ' => 631
388+ ],
389+ 1 => [
390+ 'dimension_values ' => ['London, England ' ],
391+ 'value ' => 1142
392+ ],
393+ 2 => [
394+ 'dimension_values ' => ['Casablanca, Grand Casablanca ' ],
395+ 'value ' => 321
396+ ],
397+ ]
398+ ]
399+ ],
400+ ],
401+ ],
402+ ]
403+ ];
404+
405+ $ facebook = new Facebook ();
406+ $ responseMock = m::mock ('\Facebook\FacebookResponse ' )
407+ ->shouldReceive ('getDecodedBody ' )
408+ ->once ()
409+ ->andReturn ($ decodedAudienceData )
410+ ->getMock ();
411+ $ facebookMock = m::mock ('\Facebook\Facebook ' );
412+ $ facebookMock ->shouldReceive ('sendRequest ' )->once ()->andReturn ($ responseMock );
413+ $ facebook ->setFacebookLibrary ($ facebookMock );
414+
415+ $ audienceData = $ facebook ->getPageInsightsAudienceData (
416+ self ::FB_PAGE_ID ,
417+ 'follower_demographics ' ,
418+ 'city '
419+ );
420+
421+ $ this ->assertEquals (['city ' ], $ audienceData ['dimension_keys ' ]);
422+ }
423+
424+ public function testGetPageInsightsAudienceDataEmptyResponse ()
425+ {
426+ $ decodedAudienceData = [
427+ 'data ' => []
428+ ];
429+
430+ $ facebook = new Facebook ();
431+ $ responseMock = m::mock ('\Facebook\FacebookResponse ' )
432+ ->shouldReceive ('getDecodedBody ' )
433+ ->once ()
434+ ->andReturn ($ decodedAudienceData )
435+ ->getMock ();
436+ $ facebookMock = m::mock ('\Facebook\Facebook ' );
437+ $ facebookMock ->shouldReceive ('sendRequest ' )->once ()->andReturn ($ responseMock );
438+ $ facebook ->setFacebookLibrary ($ facebookMock );
439+
440+ $ audienceData = $ facebook ->getPageInsightsAudienceData (
441+ self ::FB_PAGE_ID ,
442+ 'follower_demographics ' ,
443+ 'city '
444+ );
445+
446+ $ this ->assertEquals ([], $ audienceData );
447+ }
448+
373449 public function testGetPagePostGraphMetricsData ()
374450 {
375451 $ decodedGraphResponseData = [
0 commit comments