/** * Test the parsing of Vocabulary entries (VC). */ public function testVCParsing() { $this->assertEquals('value fr', Utils::getVCName(['name' => 'raw name', 'ontologyName' => ['fr' => 'value fr', 'de' => 'value de']], ['fr', 'de']), "Fetching the Vocabulary name in the correct order (fr first)."); $this->assertEquals('value de', Utils::getVCName(['name' => 'raw name', 'ontologyName' => ['fr' => 'value fr', 'de' => 'value de']], ['de', 'fr']), "Fetching the Vocabulary name in the correct order (de first)."); $this->assertEquals('value de', Utils::getVCName((object) ['name' => 'raw name', 'ontologyName' => (object) ['fr' => 'value fr', 'de' => 'value de']], ['de', 'fr']), "Fetching the Vocabulary name from a stdClass works as well."); $this->assertEquals('value de', Utils::getVCName(['name' => 'raw name', 'ontologyName' => ['fr' => 'value fr', 'de' => 'value de']], ['en', 'de', 'fr']), "Fetching the Vocabulary name in the correct order (en first, falling back to de)."); $this->assertEquals('value de', Utils::getVCName(['name' => 'raw name', 'ontologyName' => ['fr' => 'value fr', 'de' => 'value de']]), "Not passing a language fallback array uses the default from Utils::getLSValue() (de first)."); $this->assertEquals('raw name', Utils::getVCName(['name' => 'raw name', 'ontologyName' => ['fr' => 'value fr', 'de' => 'value de']], []), "Returning the raw Vocabulary name when no match (no language fallback)."); $this->assertEquals('raw name', Utils::getVCName(['name' => 'raw name', 'ontologyName' => ['fr' => 'value fr', 'de' => 'value de']], ['en', 'it']), "Returning the raw Vocabulary name when no match (fallback doesn't contain LS languages)."); $this->assertEquals('raw name', Utils::getVCName(['name' => 'raw name'], ['en', 'it']), "Returning the raw Vocabulary name when no Ontology data is present."); }