/* * $Id$ * * Janus platform is an open-source multiagent platform. * More details on http://www.janusproject.io * * Copyright (C) 2014-2015 Sebastian RODRIGUEZ, Nicolas GAUD, Stéphane GALLAND. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package io.janusproject.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import java.util.ArrayList; import java.util.List; import java.util.UUID; import io.janusproject.Boot; import io.janusproject.JanusConfig; import io.janusproject.tests.testutils.AbstractJanusTest; import org.junit.Test; /** * @author $Author: sgalland$ * @version $FullVersion$ * @mavengroupid $GroupId$ * @mavenartifactid $ArtifactId$ */ @SuppressWarnings("all") public class JanusConfigTest extends AbstractJanusTest { private static final String DEFAULT_VALUE = UUID.randomUUID().toString(); private static final float FLOAT_EPSILON = 0.000001f; @Test public void testGetSystemPropertyString_fromProperties() throws Exception { List<Object> names = new ArrayList<>(System.getProperties().keySet()); for (Object k : names) { String sv = System.getProperty(k.toString()); String v = JanusConfig.getSystemProperty(k.toString()); assertEquals(sv, v); v = JanusConfig.getSystemProperty(k + UUID.randomUUID().toString()); assertNull(v); } } @Test public void testGetSystemPropertyStringString_fromProperties() throws Exception { for (Object k : System.getProperties().keySet()) { String sv = System.getProperty(k.toString()); String v = JanusConfig.getSystemProperty(k.toString(), DEFAULT_VALUE); assertEquals(sv, v); v = JanusConfig.getSystemProperty(k + UUID.randomUUID().toString(), DEFAULT_VALUE); assertSame(DEFAULT_VALUE, v); } } @Test public void testGetSystemPropertyString_fromEnv() throws Exception { List<String> names = new ArrayList<>(System.getenv().keySet()); for (String k : names) { String sv = System.getenv(k.toString()); String v = JanusConfig.getSystemProperty(k.toString()); assertEquals(sv, v); v = JanusConfig.getSystemProperty(k + UUID.randomUUID().toString()); assertNull(v); } } @Test public void testGetSystemPropertyStringString_fromEnv() throws Exception { List<String> names = new ArrayList<>(System.getenv().keySet()); for (String k : names) { String sv = System.getenv(k.toString()); String v = JanusConfig.getSystemProperty(k.toString(), DEFAULT_VALUE); assertEquals(sv, v); v = JanusConfig.getSystemProperty(k + UUID.randomUUID().toString(), DEFAULT_VALUE); assertSame(DEFAULT_VALUE, v); } } @Test public void testGetSystemPropertyAsInteger() throws Exception { System.setProperty("janus.unit.test.enum", Integer.toString(234)); //$NON-NLS-1$ List<Object> names = new ArrayList<>(System.getProperties().keySet()); for (Object k : names) { String sv = JanusConfig.getSystemProperty(k.toString(), ""); //$NON-NLS-1$ int v = JanusConfig.getSystemPropertyAsInteger(k.toString(), 567); if (k.equals("janus.unit.test.enum")) { //$NON-NLS-1$ assertEquals(234, v); } else { int rv; try { rv = Integer.parseInt(sv); } catch (Throwable exception) { rv = 567; } assertEquals(rv, v); } } int v = JanusConfig.getSystemPropertyAsInteger("janus.unit.test.enum2", 789); //$NON-NLS-1$ assertEquals(789, v); } @Test public void testGetSystemPropertyAsFloat() throws Exception { System.setProperty("janus.unit.test.enum", Float.toString(234.567f)); //$NON-NLS-1$ List<Object> names = new ArrayList<>(System.getProperties().keySet()); for (Object k : names) { String sv = JanusConfig.getSystemProperty(k.toString(), ""); //$NON-NLS-1$ float v = JanusConfig.getSystemPropertyAsFloat(k.toString(), 567.8901f); if (k.equals("janus.unit.test.enum")) { //$NON-NLS-1$ assertEquals(234.567f, v, FLOAT_EPSILON); } else { float rv; try { rv = Float.parseFloat(sv); } catch (Throwable exception) { rv = 567.8901f; } assertEquals(rv, v, FLOAT_EPSILON); } } float v = JanusConfig.getSystemPropertyAsFloat("janus.unit.test.enum2", 789.0123f); //$NON-NLS-1$ assertEquals(789.0123f, v, FLOAT_EPSILON); } @Test public void testGetSystemPropertyAsBoolean() throws Exception { System.setProperty("janus.unit.test.enum", Boolean.TRUE.toString()); //$NON-NLS-1$ List<Object> names = new ArrayList<>(System.getProperties().keySet()); for (Object k : names) { String sv = JanusConfig.getSystemProperty(k.toString(), ""); //$NON-NLS-1$ boolean v = JanusConfig.getSystemPropertyAsBoolean(k.toString(), true); if (k.equals("janus.unit.test.enum")) { //$NON-NLS-1$ assertEquals(true, v); } else { assertSame(Boolean.parseBoolean(sv), v); } } boolean v = JanusConfig.getSystemPropertyAsBoolean("janus.unit.test.enum2", true); //$NON-NLS-1$ assertEquals(true, v); } @Test public void testGetSystemPropertyAsEnum() throws Exception { System.setProperty("janus.unit.test.enum", UnitTestEnum.UNIT_TEST_ENUM_DEF.name()); //$NON-NLS-1$ List<Object> names = new ArrayList<>(System.getProperties().keySet()); for (Object k : names) { UnitTestEnum v = JanusConfig.getSystemPropertyAsEnum(UnitTestEnum.class, k.toString(), UnitTestEnum.UNIT_TEST_ENUM_ABC); if (k.equals("janus.unit.test.enum")) { //$NON-NLS-1$ assertSame(UnitTestEnum.UNIT_TEST_ENUM_DEF, v); } else { assertSame(UnitTestEnum.UNIT_TEST_ENUM_ABC, v); } } UnitTestEnum v = JanusConfig.getSystemPropertyAsEnum(UnitTestEnum.class, "janus.unit.test.enum2", //$NON-NLS-1$ UnitTestEnum.UNIT_TEST_ENUM_ABC); assertSame(UnitTestEnum.UNIT_TEST_ENUM_ABC, v); } @Test public void testGetSystemPropertyAsClassObject() throws Exception { System.setProperty("janus.unit.test.enum", JanusConfig.class.getName()); //$NON-NLS-1$ List<Object> names = new ArrayList<>(System.getProperties().keySet()); for (Object k : names) { Class<?> v = JanusConfig.getSystemPropertyAsClass(k.toString(), Boot.class); if (k.equals("janus.unit.test.enum")) { //$NON-NLS-1$ assertEquals(JanusConfig.class, v); } else { assertNotNull(v); } } Class<?> v = JanusConfig.getSystemPropertyAsClass("janus.unit.test.enum2", JanusConfig.class); //$NON-NLS-1$ assertEquals(JanusConfig.class, v); } @Test public void testGetSystemPropertyAsClassS() throws Exception { System.setProperty("janus.unit.test.enum", JanusConfig.class.getName()); //$NON-NLS-1$ List<Object> names = new ArrayList<>(System.getProperties().keySet()); for (Object k : names) { Class<? extends JanusConfig> v = JanusConfig.getSystemPropertyAsClass(JanusConfig.class, k.toString(), (Class<JanusConfig>) null); if (k.equals("janus.unit.test.enum")) { //$NON-NLS-1$ assertEquals(JanusConfig.class, v); } else { assertNull(v); } } Class<?> v = JanusConfig.getSystemPropertyAsClass(JanusConfig.class, "janus.unit.test.enum2", JanusConfig.class); //$NON-NLS-1$ assertEquals(JanusConfig.class, v); } /** * @author $Author: sgalland$ * @version $FullVersion$ * @mavengroupid $GroupId$ * @mavenartifactid $ArtifactId$ */ private static enum UnitTestEnum { UNIT_TEST_ENUM_ABC, UNIT_TEST_ENUM_DEF; } }