@Test(expected = NoSuchMessageException.class) public void getMessageWithNoDefaultPassedInAndNotFoundInMsgCatalog() { // Try with Locale.US sac.getMessage("bogus.message", null, Locale.US); }
@Test public void getMessageWithDefaultPassedInAndNotFoundInMsgCatalog() { // Try with Locale.US assertTrue("bogus msg from staticMsgSource with default msg passed in returned default msg for Locale.US", sac.getMessage("bogus.message", null, "This is a default msg if not found in MessageSource.", Locale.US) .equals("This is a default msg if not found in MessageSource.")); }
@Test public void getMessageWithDefaultPassedInAndFoundInMsgCatalog() { // Try with Locale.US assertTrue("valid msg from staticMsgSource with default msg passed in returned msg from msg catalog for Locale.US", sac.getMessage("message.format.example2", null, "This is a default msg if not found in MessageSource.", Locale.US) .equals("This is a test message in the message catalog with no args.")); }
/** * We really are testing the AbstractMessageSource class here. * The underlying implementation uses a hashMap to cache messageFormats * once a message has been asked for. This test is an attempt to * make sure the cache is being used properly. * @see org.springframework.context.support.AbstractMessageSource for more details. */ @Test public void getMessageWithMessageAlreadyLookedFor() { Object[] arguments = { new Integer(7), new Date(System.currentTimeMillis()), "a disturbance in the Force" }; // The first time searching, we don't care about for this test // Try with Locale.US sac.getMessage("message.format.example1", arguments, Locale.US); // Now msg better be as expected assertTrue("2nd search within MsgFormat cache returned expected message for Locale.US", sac.getMessage("message.format.example1", arguments, Locale.US). contains("there was \"a disturbance in the Force\" on planet 7.")); Object[] newArguments = { new Integer(8), new Date(System.currentTimeMillis()), "a disturbance in the Force" }; // Now msg better be as expected even with different args assertTrue("2nd search within MsgFormat cache with different args returned expected message for Locale.US", sac.getMessage("message.format.example1", newArguments, Locale.US). contains("there was \"a disturbance in the Force\" on planet 8.")); }
/** * Example taken from the javadocs for the java.text.MessageFormat class */ @Test public void getMessageWithNoDefaultPassedInAndFoundInMsgCatalog() { Object[] arguments = { new Integer(7), new Date(System.currentTimeMillis()), "a disturbance in the Force" }; /* Try with Locale.US Since the msg has a time value in it, we will use String.indexOf(...) to just look for a substring without the time. This is because it is possible that by the time we store a time variable in this method and the time the ResourceBundleMessageSource resolves the msg the minutes of the time might not be the same. */ assertTrue("msg from staticMsgSource for Locale.US substituting args for placeholders is as expected", sac.getMessage("message.format.example1", arguments, Locale.US). contains("there was \"a disturbance in the Force\" on planet 7.")); // Try with Locale.UK assertTrue("msg from staticMsgSource for Locale.UK substituting args for placeholders is as expected", sac.getMessage("message.format.example1", arguments, Locale.UK). contains("there was \"a disturbance in the Force\" on station number 7.")); // Try with Locale.US - Use a different test msg that requires no args assertTrue("msg from staticMsgSource for Locale.US that requires no args is as expected", sac.getMessage("message.format.example2", null, Locale.US) .equals("This is a test message in the message catalog with no args.")); }
@Test public void messageSourceResolvable() { // first code valid String[] codes1 = new String[] {"message.format.example3", "message.format.example2"}; MessageSourceResolvable resolvable1 = new DefaultMessageSourceResolvable(codes1, null, "default"); assertTrue("correct message retrieved", MSG_TXT3_US.equals(sac.getMessage(resolvable1, Locale.US))); // only second code valid String[] codes2 = new String[] {"message.format.example99", "message.format.example2"}; MessageSourceResolvable resolvable2 = new DefaultMessageSourceResolvable(codes2, null, "default"); assertTrue("correct message retrieved", MSG_TXT2_US.equals(sac.getMessage(resolvable2, Locale.US))); // no code valid, but default given String[] codes3 = new String[] {"message.format.example99", "message.format.example98"}; MessageSourceResolvable resolvable3 = new DefaultMessageSourceResolvable(codes3, null, "default"); assertTrue("correct message retrieved", "default".equals(sac.getMessage(resolvable3, Locale.US))); // no code valid, no default String[] codes4 = new String[] {"message.format.example99", "message.format.example98"}; MessageSourceResolvable resolvable4 = new DefaultMessageSourceResolvable(codes4); exception.expect(NoSuchMessageException.class); sac.getMessage(resolvable4, Locale.US); }
@Test public void testStaticApplicationContextMessageSourceWithDefaultParent() { StaticApplicationContext ac = new StaticApplicationContext(); GenericApplicationContext parent = new GenericApplicationContext(); parent.refresh(); ac.setParent(parent); ac.refresh(); assertEquals("default", ac.getMessage("code1", null, "default", Locale.ENGLISH)); assertEquals("default value", ac.getMessage("code1", new Object[] {"value"}, "default {0}", Locale.ENGLISH)); }
@Test public void testStaticApplicationContextMessageSourceWithStaticParent() { StaticApplicationContext ac = new StaticApplicationContext(); StaticApplicationContext parent = new StaticApplicationContext(); parent.refresh(); ac.setParent(parent); ac.refresh(); assertEquals("default", ac.getMessage("code1", null, "default", Locale.ENGLISH)); assertEquals("default value", ac.getMessage("code1", new Object[] {"value"}, "default {0}", Locale.ENGLISH)); }
assertEquals("message1", ac.getMessage("code1", null, Locale.ENGLISH)); assertEquals(fallbackToSystemLocale && expectGermanFallback ? "nachricht2" : "message2", ac.getMessage("code2", null, Locale.ENGLISH)); assertEquals("nachricht2", ac.getMessage("code2", null, Locale.GERMAN)); assertEquals("nochricht2", ac.getMessage("code2", null, new Locale("DE", "at"))); assertEquals("noochricht2", ac.getMessage("code2", null, new Locale("DE", "at", "oo"))); assertEquals("nachricht2xml", ac.getMessage("code2", null, Locale.GERMANY)); assertEquals("message3", ac.getMessage("code3", null, Locale.ENGLISH)); MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable("code3"); assertEquals("message3", ac.getMessage(resolvable, Locale.ENGLISH)); resolvable = new DefaultMessageSourceResolvable(new String[] {"code4", "code3"}); assertEquals("message3", ac.getMessage(resolvable, Locale.ENGLISH)); assertEquals("message3", ac.getMessage("code3", null, Locale.ENGLISH)); resolvable = new DefaultMessageSourceResolvable(new String[] {"code4", "code3"}); assertEquals("message3", ac.getMessage(resolvable, Locale.ENGLISH)); assertEquals("Hello, message1", ac.getMessage("hello", args, Locale.ENGLISH)); assertNull(ac.getMessage(null, null, null, Locale.ENGLISH)); assertEquals("default", ac.getMessage(null, null, "default", Locale.ENGLISH)); assertEquals("default", ac.getMessage(null, args, "default", Locale.ENGLISH)); assertEquals("{0}, default", ac.getMessage(null, null, "{0}, default", Locale.ENGLISH)); assertEquals("Hello, default", ac.getMessage(null, args, "{0}, default", Locale.ENGLISH)); assertEquals("default", ac.getMessage(resolvable, Locale.ENGLISH));