Annotation Type DefaultLocale


@Target({METHOD,TYPE}) @Retention(RUNTIME) @Inherited @ExtendWith(org.junitpioneer.jupiter.DefaultLocaleExtension.class) public @interface DefaultLocale
@DefaultLocale is a JUnit Jupiter extension to change the value returned by Locale.getDefault() for a test execution.

The Locale to set as the default locale can be configured in several ways:

If a language tag is set, none of the other fields must be set. Otherwise an ExtensionConfigurationException will be thrown. Specifying a country() but no language(), or a variant() but no country() and language() will also cause an ExtensionConfigurationException. After the annotated element has been executed, the default Locale will be restored to its original value.

@DefaultLocale can be used on the method and on the class level. It is inherited from higher-level containers, but can only be used once per method or class. If a class is annotated, the configured Locale will be the default Locale for all tests inside that class. Any method level configurations will override the class level default Locale.

During parallel test execution, all tests annotated with DefaultLocale, ReadsDefaultLocale, and WritesDefaultLocale are scheduled in a way that guarantees correctness under mutation of shared global state.

For more details and examples, see the documentation on @DefaultLocale and @DefaultTimeZone.

Since:
0.2
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    An ISO 3166 alpha-2 country code or a UN M.49 numeric-3 area code.
    An ISO 639 alpha-2 or alpha-3 language code, or a language subtag up to 8 characters in length.
    An language tag string as specified by IETF BCP 47.
    Any arbitrary value used to indicate a variation of a Locale.
  • Element Details

    • value

      String value
      An language tag string as specified by IETF BCP 47. See Locale.forLanguageTag(String) for more information about valid language tag values.
      Since:
      0.3
      Default:
      ""
    • language

      String language
      An ISO 639 alpha-2 or alpha-3 language code, or a language subtag up to 8 characters in length. See the Locale class description about valid language values.
      Default:
      ""
    • country

      String country
      An ISO 3166 alpha-2 country code or a UN M.49 numeric-3 area code. See the Locale class description about valid country values.
      Default:
      ""
    • variant

      String variant
      Any arbitrary value used to indicate a variation of a Locale. See the Locale class description for the details.
      Default:
      ""