private function getLanguagesNames($key = false) { $pathFile = public_path().'/languages.json'; if (!file_exists($pathFile)) { throw new Exception('Languages file not found'); } $languagesJson = file_get_contents($pathFile); $languages = json_decode($languagesJson, true); if (is_null($languages)) { throw new Exception('Error decoding languages file'); } if ($key) { $languageFiltered = array_values(array_filter($languages, function($item) use ($key){ return isset($item['key']) && ($item['key'] == $key); })); if (count($languageFiltered) > 0) { return $languageFiltered[0]['name']; } } return isset($languages) ? $languages : null; }
public function test_getLanguagesNames_without_key_returns_all_languages() { $languages = $this->getLanguagesNames(); $this->assertCount(10, $languages); } public function test_getLanguagesNames_with_key_returns_language() { $language = $this->getLanguagesNames('en'); $this->assertEquals('English', $language); }