/** * @param String $message * @param String $input * @param String $expected * * @dataProvider removeBracketsDataProvider */ public function testRemoveBrackets($message, $input, $expected) { $this->assertEquals($expected, LyricsUtils::removeBrackets($input), $message); }
/** * @desc Gets a song from Solr index if exists * * @param LyricsApiSearchParams $searchParams * * @return null|stdClass */ public function getSong(LyricsApiSearchParams $searchParams) { $query = $this->client->createSelect(); $lowerCaseSongName = $searchParams->getLowerCaseField(LyricsApiController::PARAM_SONG); $queryText = 'type:%1% AND artist_name_lc:%P2% AND ( song_name_lc:%P3% OR song_name_lc:%P4% )'; $params = [LyricsUtils::TYPE_SONG, $searchParams->getLowerCaseField(LyricsApiController::PARAM_ARTIST), $lowerCaseSongName, LyricsUtils::removeBrackets($lowerCaseSongName)]; $query->setQuery($queryText, $params); $query->setFields(['artist_name', 'album_id', 'album_name', 'song_name', 'image', 'itunes', self::INDEX_FIELD_NAME_LYRICS]); $query->setStart(0)->setRows(1); $solrSong = $this->getFirstResult($this->client->select($query)); if (is_null($solrSong)) { return null; } return $this->getOutputSong($solrSong); }