package net.techreadiness.el;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.io.InputStream;
import java.util.MissingResourceException;
import java.util.Properties;
import java.util.ResourceBundle;
import net.techreadiness.text.ELAwareResourceBundle;
import org.junit.Before;
import org.junit.Test;
public class ELAwareResourceBundleTest {
private ResourceBundle wrapped;
private ResourceBundle bundleUnderTest;
private Properties props;
@Before
public void setup() throws IOException {
wrapped = ResourceBundle.getBundle("net.techreadiness.el.ELAwareResourceBundleTest");
bundleUnderTest = new ELAwareResourceBundle(wrapped);
props = new Properties();
try (InputStream is = getClass().getResourceAsStream("/net/techreadiness/el/ELAwareResourceBundleTest.properties")) {
props.load(is);
}
}
@Test
public void test1() {
String key = "test1";
String value = bundleUnderTest.getString(key);
assertEquals("message", value, props.getProperty(key));
}
@Test
public void test2() {
String key = "test2";
String value = bundleUnderTest.getString(key);
assertEquals("message", value, props.getProperty(key));
}
@Test
public void test3() {
String value = bundleUnderTest.getString("test3");
assertEquals("message", value, props.getProperty("test1"));
}
@Test
public void test4() {
String value = bundleUnderTest.getString("test4");
assertEquals("message", value, props.getProperty("test1") + " " + props.getProperty("test2"));
}
@Test
public void test5() {
String value = bundleUnderTest.getString("test5");
assertEquals("message", value, props.getProperty("test5"));
}
@Test
public void testIndirectReference() {
String value = bundleUnderTest.getString("core.indirectReference");
assertEquals("message", value, props.getProperty("core.nestedTest"));
}
@Test(expected = MissingResourceException.class)
public void testPropertyNotInBundle() {
bundleUnderTest.getString("testPropertyNotInBundle");
}
}