com.opengamma.integration.marketdata.manipulator.dsl.ScenarioParametersTest.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.integration.marketdata.manipulator.dsl.ScenarioParametersTest.java

Source

/**
 * 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 = new ScenarioDslParameters(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 = new ScenarioDslParameters("str = \"foo\"\ndbl = 1.23");
        assertEncodeDecodeCycle(ScenarioDslParameters.class, parameters);
    }
}