/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.integration.marketdata.manipulator.dsl;
import static org.testng.AssertJUnit.assertEquals;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.opengamma.engine.marketdata.manipulator.ScenarioParameters;
import com.opengamma.util.test.AbstractFudgeBuilderTestCase;
import com.opengamma.util.test.TestGroup;
@Test(groups = TestGroup.UNIT)
public class ScenarioParametersTest extends AbstractFudgeBuilderTestCase {
@Test
public void setParametersFromScript() throws IOException {
String scriptFile = "src/test/groovy/ScenarioParametersTest.groovy";
String script = IOUtils.toString(new BufferedReader(new FileReader(scriptFile)));
ScenarioParameters scenarioParameters = ScenarioDslParameters.of(script);
Map<String, Object> parameters = scenarioParameters.getParameters();
assertEquals("foo", parameters.get("aString"));
assertEquals(Lists.newArrayList(1, 2, 3), parameters.get("aList"));
assertEquals(1.234, ((Number) parameters.get("aDouble")).doubleValue());
assertEquals(ImmutableMap.of("key1", "value1", "key2", "value2"), parameters.get("aMap"));
assertEquals(LocalDate.of(2011, 3, 8), parameters.get("aLocalDate"));
}
@Test
public void fudgeRoundTrip() {
ScenarioDslParameters parameters = ScenarioDslParameters.of("str = \"foo\"\ndbl = 1.23");
assertEncodeDecodeCycle(ScenarioDslParameters.class, parameters);
}
}