/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.component;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertTrue;
import java.util.List;
import org.testng.annotations.Test;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class ComponentManagerTest {
@Test
public void test_loadInit_properties() {
ComponentManager mgr = new ComponentManager("testserver");
mgr.load("classpath:com/opengamma/component/test-success.properties");
mgr.init();
assertEquals("testserver", mgr.getServerName());
assertEquals(3, mgr.getConfigIni().getGroups().size());
assertEquals(1, mgr.getConfigIni().getGroup("global").size());
assertEquals(3, mgr.getConfigIni().getGroup("one").size());
assertEquals(5, mgr.getConfigIni().getGroup("two").size());
assertEquals("one", mgr.getConfigIni().getGroup("one").getValue("alpha"));
}
@Test
public void test_loadInit_ini() {
ComponentManager mgr = new ComponentManager("testserver");
mgr.load("classpath:com/opengamma/component/test-success.ini");
mgr.init();
assertEquals("testserver", mgr.getServerName());
assertEquals(3, mgr.getConfigIni().getGroups().size());
assertEquals(1, mgr.getConfigIni().getGroup("global").size());
assertEquals(3, mgr.getConfigIni().getGroup("one").size());
assertEquals(5, mgr.getConfigIni().getGroup("two").size());
assertEquals("two", mgr.getConfigIni().getGroup("one").getValue("alpha"));
assertNull("two", mgr.getConfigIni().getGroup("one").getValue("gamma"));
List<?> list = mgr.getRepository().getInstance(List.class, "two");
assertEquals(3, list.size());
}
//-------------------------------------------------------------------------
@Test(expectedExceptions = ComponentConfigException.class)
public void test_load_badFileType() {
ComponentManager mgr = new ComponentManager("testserver");
try {
mgr.load("classpath:com/opengamma/component/test-badfiletype.txt");
} catch (ComponentConfigException ex) {
assertTrue(ex.getMessage().contains("Unknown file format"));
throw ex;
}
}
@Test(expectedExceptions = ComponentConfigException.class)
public void test_load_properties_noManagerNext() {
ComponentManager mgr = new ComponentManager("testserver");
try {
mgr.load("classpath:com/opengamma/component/test-nomanagernext.properties");
} catch (ComponentConfigException ex) {
assertTrue(ex.getMessage().contains("The properties file must contain the key 'MANAGER.NEXT.FILE' to specify the next file to load"));
throw ex;
}
}
//-------------------------------------------------------------------------
@Test(expectedExceptions = ComponentConfigException.class)
public void test_loadInit_missingComponent() {
ComponentManager mgr = new ComponentManager("testserver");
mgr.load("classpath:com/opengamma/component/test-missingcomponentref.ini");
try {
mgr.init();
} catch (ComponentConfigException ex) {
assertTrue(ex.getCause().getMessage().contains("Unable to find component reference"));
assertTrue(ex.getCause().getMessage().contains("three"));
assertTrue(ex.getCause().getMessage().contains("epsilon"));
throw ex;
}
}
@Test(expectedExceptions = ComponentConfigException.class)
public void test_loadInit_duplicateGroup() {
ComponentManager mgr = new ComponentManager("testserver");
mgr.load("classpath:com/opengamma/component/test-duplicategroup.ini");
try {
mgr.init();
} catch (ComponentConfigException ex) {
assertTrue(ex.getMessage().contains("one"));
throw ex;
}
}
@Test(expectedExceptions = ComponentConfigException.class)
public void test_loadInit_duplicateProperty() {
ComponentManager mgr = new ComponentManager("testserver");
mgr.load("classpath:com/opengamma/component/test-duplicateproperty.ini");
try {
mgr.init();
} catch (ComponentConfigException ex) {
assertTrue(ex.getMessage().contains("two"));
assertTrue(ex.getMessage().contains("delta"));
throw ex;
}
}
@Test(expectedExceptions = ComponentConfigException.class)
public void test_loadInit_unusedProperty() {
ComponentManager mgr = new ComponentManager("testserver");
mgr.load("classpath:com/opengamma/component/test-unused.ini");
try {
mgr.init();
} catch (ComponentConfigException ex) {
assertTrue(ex.getCause().getMessage().contains("Configuration was specified but not used"));
assertTrue(ex.getCause().getMessage().contains("foobar"));
throw ex;
}
}
}