@@ -370,6 +370,82 @@ public function testGetPageInsightsMetricsDataShouldBatchLongPeriodRequests()
370
370
$ this ->assertEquals ($ insightsData ["page_fans " ]["2017-05-29T07:00:00+0000 " ], 111 );
371
371
}
372
372
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
+
373
449
public function testGetPagePostGraphMetricsData ()
374
450
{
375
451
$ decodedGraphResponseData = [
0 commit comments