Home | History | Annotate | Download | only in translit
      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