package org.jrebirth.af.core.resource.parameter; import static org.junit.Assert.assertEquals; import org.jrebirth.af.api.exception.CoreRuntimeException; import org.jrebirth.af.api.resource.i18n.JRLevel; import org.jrebirth.af.api.resource.parameter.ParameterItem; import org.jrebirth.af.core.log.JRebirthMarkers; import org.jrebirth.af.core.resource.ResourceBuilders; import org.jrebirth.af.core.resource.i18n.MessageResourceBase; import org.jrebirth.af.core.resource.provided.JRebirthParameters; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; /** * The class <strong>ParameterTest</strong>. * * @author Sébastien Bordes */ public class ParameterTest { @Rule public ExpectedException thrown = ExpectedException.none(); @BeforeClass public static void setUpBeforeClass() throws Exception { ResourceBuilders.MESSAGE_BUILDER.searchMessagesFiles(".*_rb"); ResourceBuilders.PARAMETER_BUILDER.searchConfigurationFiles(".*test-jrebirth", "properties"); ParameterMessages.UNDEFINED_ENV_VAR.define(new MessageResourceBase("Fatal Error ! environment variable {0} not found ", JRebirthMarkers.PARAMETER, JRLevel.Exception)); JRebirthParameters.DEVELOPER_MODE.define(true); } @Before public void setUp() throws Exception { } @Test public void stringParameter() { checkStringParameter(TestParameters.TEST_STRING_PARAM_1, "fonts"); checkStringParameter(TestParameters.TEST_STRING_PARAM_2, "fontsFolder"); checkStringParameter(TestParameters.TEST_STRING_PARAM_3, "font");// Default value checkStringParameter(TestParameters.TEST_STRING_PARAM_4, "fonts");// properties value, default one is ignored } private void checkStringParameter(final ParameterItem<String> parameterItem, final String checkedName) { final String param = parameterItem.get(); assertEquals("Check String", checkedName, param); } @Test public void integerParameter() { checkIntegerParameter(TestParameters.TEST_INTEGER_WIDTH, 800); } private void checkIntegerParameter(final ParameterItem<Integer> parameterItem, final Integer checkedValue) { final Integer param = parameterItem.get(); assertEquals("Check Integer", checkedValue, param); } @Test public void overridableParameter() { TestParameters.OVERRIDABLE_PARAM.define(2000); assertEquals(2000, TestParameters.OVERRIDABLE_PARAM.get().intValue()); try { System.gc(); Thread.sleep(500); System.gc(); } catch (final InterruptedException e) { e.printStackTrace(); } assertEquals(2000, TestParameters.OVERRIDABLE_PARAM.get().intValue()); } @Test public void varenvParameter() { final String tmp = System.getenv("TMP"); // Test properties redefined into file // System.out.println(TestParameters.VARENV_PARAM0.get()); Assert.assertEquals(tmp, TestParameters.VARENV_PARAM0.get()); // System.out.println(TestParameters.VARENV_PARAM1.get()); Assert.assertEquals(tmp + "/first", TestParameters.VARENV_PARAM1.get()); // System.out.println(TestParameters.VARENV_PARAM2.get()); Assert.assertEquals(tmp + "/second", TestParameters.VARENV_PARAM2.get()); // Test default values // System.out.println(TestParameters.VARENV_PARAM3.get()); Assert.assertEquals(tmp + "/third", TestParameters.VARENV_PARAM3.get()); // System.out.println(TestParameters.VARENV_PARAM4.get()); Assert.assertEquals(tmp + "/fourth", TestParameters.VARENV_PARAM4.get()); // Test not found envvar this.thrown.expect(CoreRuntimeException.class); // System.out.println(TestParameters.VARENV_PARAM3.get()); Assert.assertEquals(tmp + "/fifth", TestParameters.VARENV_PARAM5.get()); } @Test(expected = CoreRuntimeException.class) public void varenvParameterException() { // System.out.println(TestParameters.VARENV_PARAM4.get()); Assert.assertEquals("$TMP2/sixth", TestParameters.VARENV_PARAM6.get()); } @After public void tearDown() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } }