1 // 2017 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html#License 3 package com.ibm.icu.dev.test.translit; 4 5 import java.util.ArrayList; 6 import java.util.Collection; 7 import java.util.Enumeration; 8 9 import org.junit.Test; 10 import org.junit.runner.RunWith; 11 import org.junit.runners.Parameterized; 12 13 import com.ibm.icu.dev.test.TestFmwk; 14 import com.ibm.icu.text.Transliterator; 15 16 /*********************************************************************** 17 18 This test class uses JUnit parametrization to iterate over all 19 transliterators and to execute a sample operation. 20 21 ***********************************************************************/ 22 23 @RunWith(Parameterized.class) 24 public class TransliteratorInstantiateAllTest extends TestFmwk { 25 private String testTransliteratorID; 26 27 public TransliteratorInstantiateAllTest /*InstantiationTest*/(String t) { 28 this.testTransliteratorID = t; 29 } 30 31 @Parameterized.Parameters 32 public static Collection testData() { 33 ArrayList<String> allTranslitIDs = new ArrayList<String>(); 34 35 for (Enumeration e = Transliterator.getAvailableIDs(); e.hasMoreElements(); ) { 36 allTranslitIDs.add((String) e.nextElement()); 37 } 38 39 return allTranslitIDs; 40 } 41 42 @Test 43 public void TestInstantiation() { 44 Transliterator t = null; 45 46 try { 47 t = Transliterator.getInstance(testTransliteratorID); 48 } catch (IllegalArgumentException ex) { 49 errln("FAIL: " + testTransliteratorID); 50 throw ex; 51 } 52 53 if (t != null) { 54 // Test toRules 55 String rules = null; 56 try { 57 rules = t.toRules(true); 58 Transliterator.createFromRules("x", rules, Transliterator.FORWARD); 59 } catch (IllegalArgumentException ex2) { 60 errln("FAIL: " + "ID" + ".toRules() => bad rules: " + 61 rules); 62 throw ex2; 63 } 64 } 65 } 66 } 67