Skip to content

Commit

Permalink
Merge pull request #184 from viadeo/context_locale
Browse files Browse the repository at this point in the history
feature #183: add a getUSerLangAsLocale() method in Context
  • Loading branch information
mglcel committed Feb 28, 2014
2 parents c4604dc + 09b5fa5 commit daaf14b
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 3 deletions.
10 changes: 8 additions & 2 deletions kasper-api/src/main/java/com/viadeo/kasper/context/Context.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.viadeo.kasper.impl.DefaultKasperId;

import java.io.Serializable;
import java.util.Locale;
import java.util.Map;
import java.util.UUID;

Expand Down Expand Up @@ -94,12 +95,17 @@ public interface Context extends Serializable {
// ------------------------------------------------------------------------

/**
* @return the user default language (ISO 639-1)
* @return the user default language (preferred: ISO 639-1)
*/
String getUserLang();

/**
* @return the user default language as locale
*/
Locale getUserLangAsLocale();

/**
* @param lang user default language (ISO 639-1)
* @param lang user default language (preferred: ISO 639-1)
*/
Context setUserLang(String lang);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.viadeo.kasper.context.Context;

import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

import static com.google.common.base.Preconditions.checkNotNull;
Expand Down Expand Up @@ -111,6 +112,11 @@ public String getUserLang() {
return this.userLang;
}

@Override
public Locale getUserLangAsLocale() {
return Locale.forLanguageTag(this.userLang);
}

@Override
public Context setUserLang(final String userLang) {
this.userLang = checkNotNull(userLang);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import junit.framework.TestCase;
import org.junit.Test;

import java.util.Locale;

public class KasperDefaultContextBuilderTest extends TestCase {

@Test
Expand Down Expand Up @@ -43,5 +45,65 @@ public void testChild() {
assertEquals(context.getSequenceIncrement() + 1, newContext.getSequenceIncrement());
assertEquals(context, newContext);
}


@Test
public void testUserLangAsLocale_with_en() {

// Given
final DefaultContext context = new DefaultContext();
context.setUserLang("en");

// When
final Locale locale = context.getUserLangAsLocale();

// Then
assertEquals("en", locale.getLanguage());
assertEquals("", locale.getVariant());
assertEquals("English", locale.getDisplayLanguage());
assertEquals("English", locale.getDisplayName());
assertEquals("", locale.getDisplayVariant());
assertEquals("en", locale.toLanguageTag());
assertEquals("", locale.getCountry());
}

@Test
public void testUserLangAsLocale_with_en_US() {

// Given
final DefaultContext context = new DefaultContext();
context.setUserLang("en-us");

// When
final Locale locale = context.getUserLangAsLocale();

// Then
assertEquals("en", locale.getLanguage());
assertEquals("", locale.getVariant());
assertEquals("English", locale.getDisplayLanguage());
assertEquals("English (United States)", locale.getDisplayName());
assertEquals("", locale.getDisplayVariant());
assertEquals("en-US", locale.toLanguageTag());
assertEquals("US", locale.getCountry());
}

@Test
public void testUserLangAsLocale_with_wrong() {

// Given
final DefaultContext context = new DefaultContext();
context.setUserLang("wrong");

// When
final Locale locale = context.getUserLangAsLocale();

// Then
assertEquals("wrong", locale.getLanguage());
assertEquals("", locale.getVariant());
assertEquals("wrong", locale.getDisplayLanguage());
assertEquals("wrong", locale.getDisplayName());
assertEquals("", locale.getDisplayVariant());
assertEquals("wrong", locale.toLanguageTag());
assertEquals("", locale.getCountry());
}

}

0 comments on commit daaf14b

Please sign in to comment.