/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.sa.util; import java.util.MissingFormatArgumentException; import java.util.MissingResourceException; import org.junit.Assert; import org.junit.Test; public class MessagesTest { @Test public void createByName() { Messages messages = new Messages("com.emc.sa.util.MessagesTestOne"); Assert.assertEquals("One", messages.get("message")); } @Test public void createFromClass() { Messages messages = new Messages(getClass(), "MessagesTestOne"); Assert.assertEquals("One", messages.get("message")); } @Test public void chainedBundles() { Messages parent = new Messages(getClass(), "MessagesTestOne"); Messages child = new Messages(parent, getClass(), "MessagesTestTwo"); Assert.assertEquals("One", parent.get("message")); Assert.assertEquals("Two", child.get("message")); // Message that is not in the parent, only in the child try { parent.get("child"); Assert.fail("Parent bundle should not have contained 'child' key"); } catch (MissingResourceException e) { // this is expected } Assert.assertEquals("Child", child.get("child")); // Messages that is in the parent, not in the child but accessible through parent Assert.assertEquals("Parent", parent.get("parent")); Assert.assertEquals("Parent", child.get("parent")); } @Test public void subdirBundle() { Messages messages = new Messages(getClass(), "messages/Subdir"); Assert.assertEquals("Subdir", messages.get("message")); } @Test public void formattedMessage() { Messages messages = new Messages(getClass(), "MessagesTestOne"); Assert.assertEquals("Message is Hello", messages.get("formatted", "Hello", "Unused")); } @Test(expected = MissingFormatArgumentException.class) public void missingFormatSpecifier() { Messages messages = new Messages(getClass(), "MessagesTestOne"); messages.get("missingArg", "some arg"); } @Test public void escapedMessage() { Messages messages = new Messages(getClass(), "MessagesTestOne"); Assert.assertEquals("Escaped %s", messages.get("escaped", "Hello")); } }