类java.util.Locale.Builder源码实例Demo

下面列出了怎么用java.util.Locale.Builder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: openjdk-8   文件: LocaleEnhanceTest.java
public void testGetExtension() {
    // forLanguageTag does NOT normalize to hyphen
    Locale locale = Locale.forLanguageTag("und-a-some_ex-tension");
    assertEquals("some_ex-tension", null, locale.getExtension('a'));

    // regular extension
    locale = new Builder().setExtension('a', "some-ex-tension").build();
    assertEquals("builder", "some-ex-tension", locale.getExtension('a'));

    // returns null if extension is not present
    assertEquals("empty b", null, locale.getExtension('b'));

    // throws exception if extension tag is illegal
    new ExpectIAE() { public void call() { Locale.forLanguageTag("").getExtension('\uD800'); }};

    // 'x' is not an extension, it's a private use tag, but it's accessed through this API
    locale = Locale.forLanguageTag("x-y-z-blork");
    assertEquals("x", "y-z-blork", locale.getExtension('x'));
}
 
源代码2 项目: dragonwell8_jdk   文件: LocaleEnhanceTest.java
public void testGetExtension() {
    // forLanguageTag does NOT normalize to hyphen
    Locale locale = Locale.forLanguageTag("und-a-some_ex-tension");
    assertEquals("some_ex-tension", null, locale.getExtension('a'));

    // regular extension
    locale = new Builder().setExtension('a', "some-ex-tension").build();
    assertEquals("builder", "some-ex-tension", locale.getExtension('a'));

    // returns null if extension is not present
    assertEquals("empty b", null, locale.getExtension('b'));

    // throws exception if extension tag is illegal
    new ExpectIAE() { public void call() { Locale.forLanguageTag("").getExtension('\uD800'); }};

    // 'x' is not an extension, it's a private use tag, but it's accessed through this API
    locale = Locale.forLanguageTag("x-y-z-blork");
    assertEquals("x", "y-z-blork", locale.getExtension('x'));
}
 
源代码3 项目: hottub   文件: LocaleEnhanceTest.java
public void testBuilderSetLanguageTag() {
    String source = "eN-LaTn-Us-NewYork-A-Xx-B-Yy-X-1-2-3";
    String target = "en-Latn-US-NewYork-a-xx-b-yy-x-1-2-3";
    Builder builder = new Builder();
    String result = builder
        .setLanguageTag(source)
        .build()
        .toLanguageTag();
    assertEquals("language", target, result);

    // redundant extensions cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-a-xx-yy-b-ww-A-00-11-c-vv"); }};

    // redundant Unicode locale extension keys within an Unicode locale extension cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-u-nu-thai-NU-chinese-xx-1234"); }};
}
 
源代码4 项目: dragonwell8_jdk   文件: LocaleEnhanceTest.java
public void testBuilderSetLanguageTag() {
    String source = "eN-LaTn-Us-NewYork-A-Xx-B-Yy-X-1-2-3";
    String target = "en-Latn-US-NewYork-a-xx-b-yy-x-1-2-3";
    Builder builder = new Builder();
    String result = builder
        .setLanguageTag(source)
        .build()
        .toLanguageTag();
    assertEquals("language", target, result);

    // redundant extensions cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-a-xx-yy-b-ww-A-00-11-c-vv"); }};

    // redundant Unicode locale extension keys within an Unicode locale extension cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-u-nu-thai-NU-chinese-xx-1234"); }};
}
 
源代码5 项目: openjdk-8   文件: LocaleEnhanceTest.java
public void testBuilderSetLanguageTag() {
    String source = "eN-LaTn-Us-NewYork-A-Xx-B-Yy-X-1-2-3";
    String target = "en-Latn-US-NewYork-a-xx-b-yy-x-1-2-3";
    Builder builder = new Builder();
    String result = builder
        .setLanguageTag(source)
        .build()
        .toLanguageTag();
    assertEquals("language", target, result);

    // redundant extensions cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-a-xx-yy-b-ww-A-00-11-c-vv"); }};

    // redundant Unicode locale extension keys within an Unicode locale extension cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-u-nu-thai-NU-chinese-xx-1234"); }};
}
 
源代码6 项目: jdk8u-jdk   文件: LocaleEnhanceTest.java
public void testBuilderSetLanguageTag() {
    String source = "eN-LaTn-Us-NewYork-A-Xx-B-Yy-X-1-2-3";
    String target = "en-Latn-US-NewYork-a-xx-b-yy-x-1-2-3";
    Builder builder = new Builder();
    String result = builder
        .setLanguageTag(source)
        .build()
        .toLanguageTag();
    assertEquals("language", target, result);

    // redundant extensions cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-a-xx-yy-b-ww-A-00-11-c-vv"); }};

    // redundant Unicode locale extension keys within an Unicode locale extension cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-u-nu-thai-NU-chinese-xx-1234"); }};
}
 
源代码7 项目: TencentKona-8   文件: LocaleEnhanceTest.java
public void testGetExtension() {
    // forLanguageTag does NOT normalize to hyphen
    Locale locale = Locale.forLanguageTag("und-a-some_ex-tension");
    assertEquals("some_ex-tension", null, locale.getExtension('a'));

    // regular extension
    locale = new Builder().setExtension('a', "some-ex-tension").build();
    assertEquals("builder", "some-ex-tension", locale.getExtension('a'));

    // returns null if extension is not present
    assertEquals("empty b", null, locale.getExtension('b'));

    // throws exception if extension tag is illegal
    new ExpectIAE() { public void call() { Locale.forLanguageTag("").getExtension('\uD800'); }};

    // 'x' is not an extension, it's a private use tag, but it's accessed through this API
    locale = Locale.forLanguageTag("x-y-z-blork");
    assertEquals("x", "y-z-blork", locale.getExtension('x'));
}
 
源代码8 项目: TencentKona-8   文件: LocaleEnhanceTest.java
public void testBuilderSetLanguageTag() {
    String source = "eN-LaTn-Us-NewYork-A-Xx-B-Yy-X-1-2-3";
    String target = "en-Latn-US-NewYork-a-xx-b-yy-x-1-2-3";
    Builder builder = new Builder();
    String result = builder
        .setLanguageTag(source)
        .build()
        .toLanguageTag();
    assertEquals("language", target, result);

    // redundant extensions cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-a-xx-yy-b-ww-A-00-11-c-vv"); }};

    // redundant Unicode locale extension keys within an Unicode locale extension cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-u-nu-thai-NU-chinese-xx-1234"); }};
}
 
源代码9 项目: jdk8u60   文件: LocaleEnhanceTest.java
/**
 * Ensure that all current locale ids parse.  Use DateFormat as a proxy
 * for all current locale ids.
 */
public void testCurrentLocales() {
    Locale[] locales = java.text.DateFormat.getAvailableLocales();
    Builder builder = new Builder();

    for (Locale target : locales) {
        String tag = target.toLanguageTag();

        // the tag recreates the original locale,
        // except no_NO_NY
        Locale tagResult = Locale.forLanguageTag(tag);
        if (!target.getVariant().equals("NY")) {
            assertEquals("tagResult", target, tagResult);
        }

        // the builder also recreates the original locale,
        // except ja_JP_JP, th_TH_TH and no_NO_NY
        Locale builderResult = builder.setLocale(target).build();
        if (target.getVariant().length() != 2) {
            assertEquals("builderResult", target, builderResult);
        }
    }
}
 
源代码10 项目: openjdk-8   文件: LocaleEnhanceTest.java
/**
 * Ensure that all current locale ids parse.  Use DateFormat as a proxy
 * for all current locale ids.
 */
public void testCurrentLocales() {
    Locale[] locales = java.text.DateFormat.getAvailableLocales();
    Builder builder = new Builder();

    for (Locale target : locales) {
        String tag = target.toLanguageTag();

        // the tag recreates the original locale,
        // except no_NO_NY
        Locale tagResult = Locale.forLanguageTag(tag);
        if (!target.getVariant().equals("NY")) {
            assertEquals("tagResult", target, tagResult);
        }

        // the builder also recreates the original locale,
        // except ja_JP_JP, th_TH_TH and no_NO_NY
        Locale builderResult = builder.setLocale(target).build();
        if (target.getVariant().length() != 2) {
            assertEquals("builderResult", target, builderResult);
        }
    }
}
 
源代码11 项目: jdk8u-jdk   文件: LocaleEnhanceTest.java
/**
 * Ensure that all current locale ids parse.  Use DateFormat as a proxy
 * for all current locale ids.
 */
public void testCurrentLocales() {
    Locale[] locales = java.text.DateFormat.getAvailableLocales();
    Builder builder = new Builder();

    for (Locale target : locales) {
        String tag = target.toLanguageTag();

        // the tag recreates the original locale,
        // except no_NO_NY
        Locale tagResult = Locale.forLanguageTag(tag);
        if (!target.getVariant().equals("NY")) {
            assertEquals("tagResult", target, tagResult);
        }

        // the builder also recreates the original locale,
        // except ja_JP_JP, th_TH_TH and no_NO_NY
        Locale builderResult = builder.setLocale(target).build();
        if (target.getVariant().length() != 2) {
            assertEquals("builderResult", target, builderResult);
        }
    }
}
 
源代码12 项目: openjdk-8-source   文件: LocaleEnhanceTest.java
/**
 * Ensure that all current locale ids parse.  Use DateFormat as a proxy
 * for all current locale ids.
 */
public void testCurrentLocales() {
    Locale[] locales = java.text.DateFormat.getAvailableLocales();
    Builder builder = new Builder();

    for (Locale target : locales) {
        String tag = target.toLanguageTag();

        // the tag recreates the original locale,
        // except no_NO_NY
        Locale tagResult = Locale.forLanguageTag(tag);
        if (!target.getVariant().equals("NY")) {
            assertEquals("tagResult", target, tagResult);
        }

        // the builder also recreates the original locale,
        // except ja_JP_JP, th_TH_TH and no_NO_NY
        Locale builderResult = builder.setLocale(target).build();
        if (target.getVariant().length() != 2) {
            assertEquals("builderResult", target, builderResult);
        }
    }
}
 
源代码13 项目: openjdk-jdk8u   文件: LocaleEnhanceTest.java
/**
 * Ensure that all current locale ids parse.  Use DateFormat as a proxy
 * for all current locale ids.
 */
public void testCurrentLocales() {
    Locale[] locales = java.text.DateFormat.getAvailableLocales();
    Builder builder = new Builder();

    for (Locale target : locales) {
        String tag = target.toLanguageTag();

        // the tag recreates the original locale,
        // except no_NO_NY
        Locale tagResult = Locale.forLanguageTag(tag);
        if (!target.getVariant().equals("NY")) {
            assertEquals("tagResult", target, tagResult);
        }

        // the builder also recreates the original locale,
        // except ja_JP_JP, th_TH_TH and no_NO_NY
        Locale builderResult = builder.setLocale(target).build();
        if (target.getVariant().length() != 2) {
            assertEquals("builderResult", target, builderResult);
        }
    }
}
 
源代码14 项目: hottub   文件: LocaleEnhanceTest.java
public void testGetExtension() {
    // forLanguageTag does NOT normalize to hyphen
    Locale locale = Locale.forLanguageTag("und-a-some_ex-tension");
    assertEquals("some_ex-tension", null, locale.getExtension('a'));

    // regular extension
    locale = new Builder().setExtension('a', "some-ex-tension").build();
    assertEquals("builder", "some-ex-tension", locale.getExtension('a'));

    // returns null if extension is not present
    assertEquals("empty b", null, locale.getExtension('b'));

    // throws exception if extension tag is illegal
    new ExpectIAE() { public void call() { Locale.forLanguageTag("").getExtension('\uD800'); }};

    // 'x' is not an extension, it's a private use tag, but it's accessed through this API
    locale = Locale.forLanguageTag("x-y-z-blork");
    assertEquals("x", "y-z-blork", locale.getExtension('x'));
}
 
源代码15 项目: openjdk-jdk8u   文件: LocaleEnhanceTest.java
public void testGetExtension() {
    // forLanguageTag does NOT normalize to hyphen
    Locale locale = Locale.forLanguageTag("und-a-some_ex-tension");
    assertEquals("some_ex-tension", null, locale.getExtension('a'));

    // regular extension
    locale = new Builder().setExtension('a', "some-ex-tension").build();
    assertEquals("builder", "some-ex-tension", locale.getExtension('a'));

    // returns null if extension is not present
    assertEquals("empty b", null, locale.getExtension('b'));

    // throws exception if extension tag is illegal
    new ExpectIAE() { public void call() { Locale.forLanguageTag("").getExtension('\uD800'); }};

    // 'x' is not an extension, it's a private use tag, but it's accessed through this API
    locale = Locale.forLanguageTag("x-y-z-blork");
    assertEquals("x", "y-z-blork", locale.getExtension('x'));
}
 
源代码16 项目: jdk8u-dev-jdk   文件: LocaleEnhanceTest.java
public void testBuilderSetLanguageTag() {
    String source = "eN-LaTn-Us-NewYork-A-Xx-B-Yy-X-1-2-3";
    String target = "en-Latn-US-NewYork-a-xx-b-yy-x-1-2-3";
    Builder builder = new Builder();
    String result = builder
        .setLanguageTag(source)
        .build()
        .toLanguageTag();
    assertEquals("language", target, result);

    // redundant extensions cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-a-xx-yy-b-ww-A-00-11-c-vv"); }};

    // redundant Unicode locale extension keys within an Unicode locale extension cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-u-nu-thai-NU-chinese-xx-1234"); }};
}
 
源代码17 项目: jdk8u_jdk   文件: LocaleEnhanceTest.java
/**
 * Ensure that all current locale ids parse.  Use DateFormat as a proxy
 * for all current locale ids.
 */
public void testCurrentLocales() {
    Locale[] locales = java.text.DateFormat.getAvailableLocales();
    Builder builder = new Builder();

    for (Locale target : locales) {
        String tag = target.toLanguageTag();

        // the tag recreates the original locale,
        // except no_NO_NY
        Locale tagResult = Locale.forLanguageTag(tag);
        if (!target.getVariant().equals("NY")) {
            assertEquals("tagResult", target, tagResult);
        }

        // the builder also recreates the original locale,
        // except ja_JP_JP, th_TH_TH and no_NO_NY
        Locale builderResult = builder.setLocale(target).build();
        if (target.getVariant().length() != 2) {
            assertEquals("builderResult", target, builderResult);
        }
    }
}
 
源代码18 项目: openjdk-8-source   文件: LocaleEnhanceTest.java
public void testBuilderSetLanguageTag() {
    String source = "eN-LaTn-Us-NewYork-A-Xx-B-Yy-X-1-2-3";
    String target = "en-Latn-US-NewYork-a-xx-b-yy-x-1-2-3";
    Builder builder = new Builder();
    String result = builder
        .setLanguageTag(source)
        .build()
        .toLanguageTag();
    assertEquals("language", target, result);

    // redundant extensions cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-a-xx-yy-b-ww-A-00-11-c-vv"); }};

    // redundant Unicode locale extension keys within an Unicode locale extension cause a failure
    new BuilderILE() { public void call() { b.setLanguageTag("und-u-nu-thai-NU-chinese-xx-1234"); }};
}
 
源代码19 项目: openjdk-jdk9   文件: LocaleEnhanceTest.java
/**
 * Ensure that all current locale ids parse.  Use DateFormat as a proxy
 * for all current locale ids.
 */
public void testCurrentLocales() {
    Locale[] locales = java.text.DateFormat.getAvailableLocales();
    Builder builder = new Builder();

    for (Locale target : locales) {
        String tag = target.toLanguageTag();

        // the tag recreates the original locale,
        // except no_NO_NY
        Locale tagResult = Locale.forLanguageTag(tag);
        if (!target.getVariant().equals("NY")) {
            assertEquals("tagResult", target, tagResult);
        }

        // the builder also recreates the original locale,
        // except ja_JP_JP, th_TH_TH and no_NO_NY
        Locale builderResult = builder.setLocale(target).build();
        if (target.getVariant().length() != 2) {
            assertEquals("builderResult", target, builderResult);
        }
    }
}
 
源代码20 项目: dragonwell8_jdk   文件: LocaleEnhanceTest.java
public void testGetScript() {
    // forLanguageTag normalizes case
    Locale locale = Locale.forLanguageTag("und-latn");
    assertEquals("forLanguageTag", "Latn", locale.getScript());

    // Builder normalizes case
    locale = new Builder().setScript("LATN").build();
    assertEquals("builder", "Latn", locale.getScript());

    // empty string is returned, not null, if there is no script
    locale = Locale.forLanguageTag("und");
    assertEquals("script is empty string", "", locale.getScript());
}
 
源代码21 项目: dragonwell8_jdk   文件: LocaleEnhanceTest.java
public void testBuilderAddUnicodeLocaleAttribute() {
    Builder builder = new Builder();
    Locale locale = builder
        .addUnicodeLocaleAttribute("def")
        .addUnicodeLocaleAttribute("abc")
        .build();

    Set<String> uattrs = locale.getUnicodeLocaleAttributes();
    assertEquals("number of attributes", 2, uattrs.size());
    assertTrue("attribute abc", uattrs.contains("abc"));
    assertTrue("attribute def", uattrs.contains("def"));

    // remove attribute
    locale = builder.removeUnicodeLocaleAttribute("xxx")
        .build();

    assertEquals("remove bogus", 2, uattrs.size());

    // add duplicate
    locale = builder.addUnicodeLocaleAttribute("abc")
        .build();
    assertEquals("add duplicate", 2, uattrs.size());

    // null attribute throws NPE
    new BuilderNPE("null attribute") { public void call() { b.addUnicodeLocaleAttribute(null); }};

    // illformed attribute throws IllformedLocaleException
    new BuilderILE("invalid attribute") { public void call() { b.addUnicodeLocaleAttribute("ca"); }};
}
 
源代码22 项目: hottub   文件: LocaleEnhanceTest.java
public void testBuilderPrivateUseExtension() {
    // normalizes hyphens to underscore, case to lower
    String source = "c-B-a";
    String target = "c-b-a";
    Builder builder = new Builder();
    String result = builder
        .setExtension(Locale.PRIVATE_USE_EXTENSION, source)
        .build()
        .getExtension(Locale.PRIVATE_USE_EXTENSION);
    assertEquals("abc", target, result);

    // multiple hyphens are ill-formed
    new BuilderILE("a--b") { public void call() { b.setExtension(Locale.PRIVATE_USE_EXTENSION, arg); }};
}
 
源代码23 项目: hottub   文件: LocaleEnhanceTest.java
public void testBuilderSetRegion() {
    // region is normalized to upper case
    String source = "uS";
    String target = "US";
    String defaulted = "";
    Builder builder = new Builder();
    String result = builder
        .setRegion(source)
        .build()
        .getCountry();
    assertEquals("us", target, result);

    // setting with empty resets
    result = builder
        .setRegion(target)
        .setRegion("")
        .build()
        .getCountry();
    assertEquals("empty", defaulted, result);

    // setting with null also resets
    result = builder
            .setRegion(target)
            .setRegion(null)
            .build()
            .getCountry();
    assertEquals("null", defaulted, result);

    // ill-formed region codes throw IAE
    // 2 alpha or 3 numeric
    new BuilderILE("q", "abc", "12", "1234", "a3", "12a") { public void call() { b.setRegion(arg); }};

    // region code validation is NOT performed, any 2-alpha or 3-digit passes
    assertEquals("2alpha", "ZZ", builder.setRegion("ZZ").build().getCountry());
    assertEquals("3digit", "000", builder.setRegion("000").build().getCountry());
}
 
源代码24 项目: jdk8u-jdk   文件: LocaleEnhanceTest.java
public void testBuilderSetScript() {
    // script is normalized to title case
    String source = "lAtN";
    String target = "Latn";
    String defaulted = "";
    Builder builder = new Builder();
    String result = builder
        .setScript(source)
        .build()
        .getScript();
    assertEquals("script", target, result);

    // setting with empty resets
    result = builder
        .setScript(target)
        .setScript("")
        .build()
        .getScript();
    assertEquals("empty", defaulted, result);

    // settting with null also resets
    result = builder
            .setScript(target)
            .setScript(null)
            .build()
            .getScript();
    assertEquals("null", defaulted, result);

    // ill-formed script codes throw IAE
    // must be 4alpha
    new BuilderILE("abc", "abcde", "l3tn") { public void call() { b.setScript(arg); }};

    // script code validation is NOT performed, any 4-alpha passes
    assertEquals("4alpha", "Wxyz", builder.setScript("wxyz").build().getScript());
}
 
源代码25 项目: jdk8u-dev-jdk   文件: LocaleEnhanceTest.java
public void testBuilderSetScript() {
    // script is normalized to title case
    String source = "lAtN";
    String target = "Latn";
    String defaulted = "";
    Builder builder = new Builder();
    String result = builder
        .setScript(source)
        .build()
        .getScript();
    assertEquals("script", target, result);

    // setting with empty resets
    result = builder
        .setScript(target)
        .setScript("")
        .build()
        .getScript();
    assertEquals("empty", defaulted, result);

    // settting with null also resets
    result = builder
            .setScript(target)
            .setScript(null)
            .build()
            .getScript();
    assertEquals("null", defaulted, result);

    // ill-formed script codes throw IAE
    // must be 4alpha
    new BuilderILE("abc", "abcde", "l3tn") { public void call() { b.setScript(arg); }};

    // script code validation is NOT performed, any 4-alpha passes
    assertEquals("4alpha", "Wxyz", builder.setScript("wxyz").build().getScript());
}
 
源代码26 项目: TencentKona-8   文件: LocaleEnhanceTest.java
public void testBuilderAddUnicodeLocaleAttribute() {
    Builder builder = new Builder();
    Locale locale = builder
        .addUnicodeLocaleAttribute("def")
        .addUnicodeLocaleAttribute("abc")
        .build();

    Set<String> uattrs = locale.getUnicodeLocaleAttributes();
    assertEquals("number of attributes", 2, uattrs.size());
    assertTrue("attribute abc", uattrs.contains("abc"));
    assertTrue("attribute def", uattrs.contains("def"));

    // remove attribute
    locale = builder.removeUnicodeLocaleAttribute("xxx")
        .build();

    assertEquals("remove bogus", 2, uattrs.size());

    // add duplicate
    locale = builder.addUnicodeLocaleAttribute("abc")
        .build();
    assertEquals("add duplicate", 2, uattrs.size());

    // null attribute throws NPE
    new BuilderNPE("null attribute") { public void call() { b.addUnicodeLocaleAttribute(null); }};

    // illformed attribute throws IllformedLocaleException
    new BuilderILE("invalid attribute") { public void call() { b.addUnicodeLocaleAttribute("ca"); }};
}
 
源代码27 项目: TencentKona-8   文件: LocaleEnhanceTest.java
public void testBuilderClear() {
    String monster = "en-latn-US-NewYork-a-bb-cc-u-co-japanese-x-z-y-x-x";
    Builder builder = new Builder();
    Locale locale = Locale.forLanguageTag(monster);
    String result = builder
        .setLocale(locale)
        .clear()
        .build()
        .toLanguageTag();
    assertEquals("clear", "und", result);
}
 
源代码28 项目: jdk8u60   文件: LocaleEnhanceTest.java
public void testGetScript() {
    // forLanguageTag normalizes case
    Locale locale = Locale.forLanguageTag("und-latn");
    assertEquals("forLanguageTag", "Latn", locale.getScript());

    // Builder normalizes case
    locale = new Builder().setScript("LATN").build();
    assertEquals("builder", "Latn", locale.getScript());

    // empty string is returned, not null, if there is no script
    locale = Locale.forLanguageTag("und");
    assertEquals("script is empty string", "", locale.getScript());
}
 
源代码29 项目: jdk8u-dev-jdk   文件: LocaleEnhanceTest.java
public void testBuilderAddUnicodeLocaleAttribute() {
    Builder builder = new Builder();
    Locale locale = builder
        .addUnicodeLocaleAttribute("def")
        .addUnicodeLocaleAttribute("abc")
        .build();

    Set<String> uattrs = locale.getUnicodeLocaleAttributes();
    assertEquals("number of attributes", 2, uattrs.size());
    assertTrue("attribute abc", uattrs.contains("abc"));
    assertTrue("attribute def", uattrs.contains("def"));

    // remove attribute
    locale = builder.removeUnicodeLocaleAttribute("xxx")
        .build();

    assertEquals("remove bogus", 2, uattrs.size());

    // add duplicate
    locale = builder.addUnicodeLocaleAttribute("abc")
        .build();
    assertEquals("add duplicate", 2, uattrs.size());

    // null attribute throws NPE
    new BuilderNPE("null attribute") { public void call() { b.addUnicodeLocaleAttribute(null); }};

    // illformed attribute throws IllformedLocaleException
    new BuilderILE("invalid attribute") { public void call() { b.addUnicodeLocaleAttribute("ca"); }};
}
 
源代码30 项目: openjdk-8-source   文件: LocaleEnhanceTest.java
public void testBuilderAddUnicodeLocaleAttribute() {
    Builder builder = new Builder();
    Locale locale = builder
        .addUnicodeLocaleAttribute("def")
        .addUnicodeLocaleAttribute("abc")
        .build();

    Set<String> uattrs = locale.getUnicodeLocaleAttributes();
    assertEquals("number of attributes", 2, uattrs.size());
    assertTrue("attribute abc", uattrs.contains("abc"));
    assertTrue("attribute def", uattrs.contains("def"));

    // remove attribute
    locale = builder.removeUnicodeLocaleAttribute("xxx")
        .build();

    assertEquals("remove bogus", 2, uattrs.size());

    // add duplicate
    locale = builder.addUnicodeLocaleAttribute("abc")
        .build();
    assertEquals("add duplicate", 2, uattrs.size());

    // null attribute throws NPE
    new BuilderNPE("null attribute") { public void call() { b.addUnicodeLocaleAttribute(null); }};

    // illformed attribute throws IllformedLocaleException
    new BuilderILE("invalid attribute") { public void call() { b.addUnicodeLocaleAttribute("ca"); }};
}
 
 类所在包
 同包方法