示例#1
0
 /**
  * {@inheritdoc}
  *
  * @return SeriesResponse
  * @throws InvalidXmlInResponseException
  */
 public function handle()
 {
     $data = $this->getData('Data');
     if (!is_array($data)) {
         throw new InvalidXmlInResponseException('Invalid XML in response');
     }
     if (!array_key_exists('Series', $data)) {
         return new SeriesResponse();
     }
     $keys = array_keys($data['Series']);
     $series = [];
     if (is_numeric($keys[0])) {
         foreach ($data['Series'] as $seriesData) {
             $series[] = $this->getSeriesFromArray($seriesData);
         }
     } else {
         $series = $this->getSeriesFromArray($data['Series']);
         if (!empty($data['Episode'])) {
             if (is_numeric(array_keys($data['Episode'])[0])) {
                 foreach ($data['Episode'] as $episodeData) {
                     $series->addEpisode(EpisodeResponseHandler::getEpisodeFromArray($episodeData));
                 }
             } else {
                 $series->addEpisode(EpisodeResponseHandler::getEpisodeFromArray($data['Episode']));
             }
         }
         $series = [$series];
     }
     return $series;
 }
 /**
  * @dataProvider responseDataProvider
  *
  * @param array $data xml response data in array
  */
 public function testGetEpisodeFromArray(array $data)
 {
     $episode = EpisodeResponseHandler::getEpisodeFromArray($data);
     self::assertInstanceOf('Adrenth\\Thetvdb\\Episode', $episode);
 }