/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.solutions.library;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import java.util.Set;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.threeten.bp.ZonedDateTime;
import com.google.common.collect.Sets;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.opengamma.sesame.engine.Results;
import com.opengamma.solutions.library.engine.EngineModule;
import com.opengamma.solutions.library.storage.DataLoadModule;
import com.opengamma.solutions.library.storage.InMemoryStorageModule;
import com.opengamma.solutions.library.storage.SourcesModule;
import com.opengamma.solutions.library.tool.CreditPricer;
import com.opengamma.util.result.Result;
import com.opengamma.util.test.TestGroup;
import com.opengamma.util.time.DateUtils;
/**
* Integration tests using OG as a library
* Input: Credit Default Swap, Snapshot Market Data
* Output: Present Value, CS01
*/
@Test(groups = TestGroup.INTEGRATION)
public class LibraryCreditTest {
private Results _results;
private static final String CREDIT_CURVE_NAME = "Sample Credit Curve";
private static final String YIELD_CURVE_NAME = "Sample Yield Curve";
private static final ZonedDateTime VALUATION_TIME = DateUtils.getUTCDate(2014, 10, 16);
@BeforeClass
public void setUp() {
Set<Module> modules = Sets.newHashSet();
modules.add(new InMemoryStorageModule());
modules.add(new SourcesModule());
modules.add(new DataLoadModule("credit-import-data"));
modules.add(new EngineModule());
Injector injector = Guice.createInjector(modules);
CreditPricer pricer = injector.getInstance(CreditPricer.class);
_results= pricer.price(VALUATION_TIME, CREDIT_CURVE_NAME, YIELD_CURVE_NAME);
}
/**
* Testing the expected values of these results is taken care of in the 'Remote' equivalent of this test
*/
@Test
public void assertSuccess() {
Result result00 = _results.get(0, 0).getResult();
assertThat(result00.isSuccess(), is(true));
Result result10 = _results.get(1, 0).getResult();
assertThat(result10.isSuccess(), is(true));
Result result01 = _results.get(0, 1).getResult();
assertThat(result01.isSuccess(), is(true));
Result result11 = _results.get(1, 1).getResult();
assertThat(result11.isSuccess(), is(true));
}
}