public class TestLang extends TestCase {
public static void testLang() throws Exception {
Lang lang = new Lang("en-US-ca");
Locale testLocale = new Locale("en", "US", "ca");
assertEquals(lang.getPrimary(),"en");
assertEquals(lang.getSubtag(0),"US");
assertEquals(lang.getSubtag(1),"ca");
assertEquals( testLocale, lang.getLocale() );
assertEquals(testLocale.toString(), lang.getLocale().toString());
assertEquals(testLocale.getDisplayCountry(), lang.getLocale().getDisplayCountry());
assertEquals(testLocale.getDisplayLanguage(), lang.getLocale().getDisplayLanguage());
assertEquals( testLocale.getDisplayVariant(), lang.getLocale().getDisplayVariant());
assertTrue(lang.matches("*"));
assertTrue(lang.matches("en"));
assertTrue(lang.matches("EN"));
assertTrue(lang.matches("en-US"));
assertTrue(lang.matches("en-us"));
assertTrue(lang.matches("en-US-ca"));
assertTrue(lang.matches("en-us-ca"));
assertFalse(lang.matches("en-US-ca-bob"));
assertFalse(lang.matches("en-US-fr"));
Exception e = null;
try {
lang = new Lang("en_US");
} catch (InvalidLangTagSyntax ex) {
e = ex;
}
assertNotNull(e);
}