package br.com.caelum.vraptor.i18n; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class TranslatorTest { private MockResourceBundle bundle; private Translator map; @Before public void setUp() { bundle = new MockResourceBundle(); map = new Translator(bundle); } @Test public void should_return_span_if_key_does_not_exist() { assertFalse(map.containsKey("must_be_not_empty")); assertEquals("<span class='i18n_missing_key'>must_be_not_empty</span>", map.get("must_be_not_empty").toString()); } @Test public void should_return_key_if_it_exists() { String message = "Must be not empty"; bundle.addWord("must_be_not_empty", message); assertEquals(message, map.get("must_be_not_empty").toString()); } @Test public void should_return_interpolated_string() { String message = "Field {0} must be not empty for component {1}"; bundle.addWord("must_be_not_empty", message); assertEquals("Field name must be not empty for component User", map.get("must_be_not_empty").args("name", "User").toString()); } @Test(expected = UnsupportedOperationException.class) public void containsValueShouldThrowException() { map.containsValue(null); } @Test(expected = UnsupportedOperationException.class) public void entrySetShouldThrowException() { map.entrySet(); } @Test(expected = UnsupportedOperationException.class) public void isEmptyShouldThrowException() { map.isEmpty(); } @Test(expected = UnsupportedOperationException.class) public void keySetShouldThrowException() { map.keySet(); } @Test(expected = UnsupportedOperationException.class) public void putShouldThrowException() { map.put(null, null); } @Test(expected = UnsupportedOperationException.class) public void putAllShouldThrowException() { map.putAll(null); } @Test(expected = UnsupportedOperationException.class) public void removeShouldThrowException() { map.remove(null); } @Test(expected = UnsupportedOperationException.class) public void sizeShouldThrowException() { map.size(); } @Test(expected = UnsupportedOperationException.class) public void valueShouldThrowException() { map.values(); } }