/** * specific search image function, build query url and parse json result. * * @param $text * @param $numPerPage * @param $pageSeq * @return array */ public function search_image($text, $numPerPage, $pageSeq) { $response = $this->send_request($text, $numPerPage, $pageSeq); $result = json_decode($response, true); $images = array(); $total_num = null; if (isset($result['stat']) && $result['stat'] == 'ok') { $total_num = $result['photos']['total']; foreach ($result['photos']['photo'] as $photo) { $images[] = Wrapper\Flickrimage::from_array($photo); } } return array($images, $total_num); }
public function test_from_array() { $raw_array = array(); $raw_array['id'] = '21429256362'; $raw_array['owner'] = '27889738'; $raw_array['secret'] = '711f03378e'; $raw_array['server'] = '5647'; $raw_array['farm'] = 6; $raw_array['title'] = 'Panel for Patriot PAC-3 Guided Missile Round Trainer at JASDF Yokota Festival 2014'; $raw_array['ispublic'] = 1; $raw_array['isfriend'] = 0; $raw_array['isfamily'] = 0; $flickrimage = Wrapper\Flickrimage::from_array($raw_array); $this->assertEquals($this->flickrimage, $flickrimage); }
public function test_mock_search_image() { $text = "BMW"; $numPerPage = 5; $pageSeq = 1; $flickrapi = $this->getMockBuilder('FlickrSearch\\Model\\FlickrAPI')->setMethods(array('send_request'))->getMock(); $flickrapi->expects($this->once())->method('send_request')->willReturn($this->get_test_data_json()); list($images, $total_images_num) = $flickrapi->search_image($text, $numPerPage, $pageSeq); $test_json = json_decode($this->get_test_data_json(), true); $expected_images = array(); $expected_total_images_number = $test_json['photos']['total']; foreach ($test_json['photos']['photo'] as $photo) { $expected_images[] = Wrapper\Flickrimage::from_array($photo); } $expected_images = array(new Wrapper\Flickrimage("21429256362", "27889738@N07", "711f03378e", "5647", 6, "Panel for Patriot PAC-3 Guided Missile Round Trainer at JASDF Yokota Festival 2014", 1, 0, 0), new Wrapper\Flickrimage("21194609688", "27889738@N07", "2afdd89062", "657", 1, "JASDF Yokota Festival in Yokota Friendship Festival 2014", 1, 0, 0), new Wrapper\Flickrimage("20844454434", "27889738@N07", "ff41cef669", "741", 1, "Fighter Aircfrafts in Yokota Friendship Festival 2014", 1, 0, 0), new Wrapper\Flickrimage("21225757978", "27889738@N07", "55f66e3d98", "5685", 6, "Patriot PAC-3 Guided Missile Round Trainer Displayed at JASDF Yokota Festival 2014", 1, 0, 0), new Wrapper\Flickrimage("21071084118", "50484221@N07", "f67c269f27", "5833", 6, "Novembers Doom (Acoustic set), 05/09/2015", 1, 0, 0)); $this->assertEquals($expected_images, $images); $this->assertEquals($expected_total_images_number, $total_images_num); }