package org.mypsycho.test.text; import org.junit.Assert; import org.junit.Test; import org.mypsycho.text.EnumMessage; /** * Class for ... * <p>Details</p> * * @author Nicolas * */ public class EnumMessageTest { static final int VALUE = 10; static public class SimpleBean { int prop1; SimpleBean prop2 = null; public SimpleBean() { this(VALUE); } public SimpleBean(int init) { prop1 = init; } public int getProp1() { return prop1; } public void setProp1(int prop1) { this.prop1 = prop1; } public SimpleBean getProp2() { return prop2; } public void setProp2(SimpleBean prop2) { this.prop2 = prop2; } } public enum TestedMessage implements EnumMessage.Message { m1, m2("a", "b"), m3("a"), m4, m5("a"); String[] args; private TestedMessage(String... args) { this.args = args; } public String[] args() { return args; } } @Test public void testEnum() throws Exception { String text = EnumMessage.format(TestedMessage.m2, "x", "y"); Assert.assertEquals("testEnum", "x and y", text); } @Test public void testEnumNoValue() throws Exception { String text = EnumMessage.format(TestedMessage.m3, "x", "y"); Assert.assertEquals("testEnumNoValue", "m3(x)", text); } @Test public void testEnumMoreArgs() throws Exception { String text = EnumMessage.format(TestedMessage.m1, "x", "y"); Assert.assertEquals("testEnumNoValue", "value", text); } @Test public void testEnumImplicitArgs() throws Exception { String text = EnumMessage.format(TestedMessage.m4, "x", "y", "z"); Assert.assertEquals("testEnumNoValue", "x and y", text); } @Test public void testNestedMesssage() throws Exception { String text = EnumMessage.format(TestedMessage.m5, new SimpleBean()); Assert.assertEquals("testEnumNoValue", "val " + VALUE, text); } }