// $HeadURL$ // $Id$ // // Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College. // // Screensaver is an open-source project developed by the ICCB-L and NSRB labs // at Harvard Medical School. This software is distributed under the terms of // the GNU General Public License. package edu.harvard.med.screensaver.ui.arch.util; import java.io.InputStream; import java.util.HashSet; import java.util.Map; import java.util.Properties; import java.util.Set; import javax.faces.application.FacesMessage; import org.springframework.beans.factory.annotation.Autowired; import edu.harvard.med.screensaver.ui.arch.view.AbstractBackingBeanTest; public class MessagesTest extends AbstractBackingBeanTest { @Autowired protected Messages messages; public void testMessagesArgSubstitution() throws Exception { InputStream messagesStream = getClass().getClassLoader().getResourceAsStream("messages.properties"); Properties messagesProperties = new Properties(); messagesProperties.load(messagesStream); HashSet<Map.Entry<Object,Object>> msgSet = new HashSet<Map.Entry<Object,Object>>(); msgSet.addAll((Set<Map.Entry<Object,Object>>) messagesProperties.entrySet()); Object[] args = new Object[] {"arg1", "arg2", "arg3"}; for (Map.Entry<Object,Object> msgEntry : msgSet) { FacesMessage facesMessage = messages.getFacesMessage((String) msgEntry.getKey(), args); String expectedMessageText = (String) msgEntry.getValue(); // do our own param substitution for our "expected" value for (int i = 0; i < args.length; ++i) { expectedMessageText = expectedMessageText.replaceAll("\\Q{" + i + "}\\E", args[i].toString()); expectedMessageText = expectedMessageText.replaceAll("''", "'"); } assertEquals(expectedMessageText, facesMessage.getSummary()); } } }