package org.ovirt.engine.core.utils; import java.util.Arrays; import java.util.List; import java.util.Locale; import org.ovirt.engine.core.common.interfaces.ErrorTranslator; import junit.framework.TestCase; public class ErrorTranslatorTest extends TestCase { public void testNoStringSubstitutionWithoutSuffix() { doTestNoStringSubstitution("AppErrors"); } public void testNoStringSubstitutionWithSuffix() { doTestNoStringSubstitution("AppErrors.properties"); } private void doTestNoStringSubstitution(String name) { ErrorTranslator et = new ErrorTranslatorImpl(name); String error = et.TranslateErrorTextSingle("DB_NO_SUCH_VM"); assertEquals("String should equal", "VM not found", error); } public void testNoStringSubstitutionWithList() { ErrorTranslator et = new ErrorTranslatorImpl("AppErrors"); List<String> error = et.TranslateErrorText(Arrays.asList("DB_NO_SUCH_VM")); assertTrue("Size", error.size() == 1); assertEquals("String should equal", "VM not found", error.get(0)); } public void testStringSubstitutionWithList() { ErrorTranslator et = new ErrorTranslatorImpl("AppErrors"); List<String> error = et.TranslateErrorText(Arrays.asList("ACTION_TYPE_FAILED_VM_IMAGE_DOES_NOT_EXIST", "$action SOMEACTION", "$type SOME Type")); String result = "Cannot SOMEACTION SOME Type. VM's Image doesn't exist."; assertTrue("Size", error.size() == 1); assertEquals("String should equal", result, error.get(0)); } public void testLocaleSpecificWithoutSuffix() { doTestLocaleSpecific("AppErrors"); } public void testLocaleSpecificWithSuffix() { doTestLocaleSpecific("AppErrors.properties"); } private void doTestLocaleSpecific(String name) { Locale locale = Locale.getDefault(); try { Locale.setDefault(Locale.GERMAN); ErrorTranslator et = new ErrorTranslatorImpl(name); List<String> errors = et.TranslateErrorText(Arrays.asList("DB_NO_SUCH_VM")); assertEquals("Unexpected Size", 1, errors.size()); assertEquals("String should equal", "Desktop nicht gefunden", errors.get(0)); String error = et.TranslateErrorTextSingle("DB_NO_SUCH_VM", Locale.GERMAN); assertEquals("String should equal", "Desktop nicht gefunden", error); } finally { Locale.setDefault(locale); } } public void testLocaleOverrideWithoutSuffix() { doTestLocaleOverride("AppErrors"); } public void testLocaleOverrideWithSuffix() { doTestLocaleOverride("AppErrors.properties"); } private void doTestLocaleOverride(String name) { ErrorTranslator et = new ErrorTranslatorImpl(name); List<String> errors = et.TranslateErrorText(Arrays.asList("DB_NO_SUCH_VM"), Locale.ITALIAN); assertEquals("Unexpected Size", 1, errors.size()); assertEquals("String should equal", "Impossibile trovare il desktop", errors.get(0)); String error = et.TranslateErrorTextSingle("DB_NO_SUCH_VM", Locale.ITALIAN); assertEquals("String should equal", "Impossibile trovare il desktop", error); } }