package net.rrm.ehour.config; import org.apache.commons.lang.StringUtils; import org.junit.Test; import java.util.Locale; import static org.junit.Assert.assertEquals; public class LocaleUtilTest { @Test public void should_serialize_valid_predefined_locale() { String languageTag = LocaleUtil.toLanguageTag(Locale.US); assertEquals("en-US", languageTag); } @Test public void should_serialize_valid_locale() { Locale[] locales = Locale.getAvailableLocales(); for (Locale locale : locales) { String languageTag = LocaleUtil.toLanguageTag(locale); assertEquals(locale.getLanguage() + (StringUtils.isNotBlank(locale.getCountry()) ? ("-" + locale.getCountry()) : ""), languageTag); } } @Test public void should_serialize_locale_with_just_languageTag() { assertEquals("en", LocaleUtil.toLanguageTag(new Locale("en"))); } @Test public void should_deserialize_locale_with_just_languageTag() { assertEquals(new Locale("en"), LocaleUtil.forLanguageTag("en")); } @Test public void should_deserialize_locale() { assertEquals(Locale.US, LocaleUtil.forLanguageTag("en-US")); } @Test public void should_deserialize_locale2() { assertEquals(new Locale("nl", "BE"), LocaleUtil.forLanguageTag("nl-BE")); } @Test public void should_default_to_nl_when_locale_not_set() { assertEquals(new Locale("nl", "nl"), LocaleUtil.forLanguageTag("")); } @Test public void should_ignore_euro_and_return_default() { assertEquals(new Locale("nl", "nl"), LocaleUtil.currencyForLanguageTag("euro")); } }