This is incorrect, you need to get the name in the specified locale if locale is not null. The reason your test below is passing is because you are adding the french name first and is getting marked as fully specified otherwise if you changed the order and addded the english one first, then it is likely to fail. Below is is what you need to do:

List<ConceptName> namesInLocale = getNames(Locale);
if(namesInLocale.size() > 0){
   return namesInLocale.iterator().next();
}

return getName();
return