/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame.credit.measures;
import static org.testng.AssertJUnit.assertEquals;
import org.fudgemsg.FudgeMsg;
import org.testng.annotations.Test;
import com.opengamma.financial.analytics.isda.credit.CreditCurveDataSnapshot;
import com.opengamma.financial.analytics.isda.credit.YieldCurveDataSnapshot;
import com.opengamma.sesame.credit.CreditPricingSampleData;
import com.opengamma.sesame.credit.config.RestructuringSettings;
import com.opengamma.sesame.trade.IndexCDSTrade;
import com.opengamma.sesame.trade.LegacyCDSTrade;
import com.opengamma.sesame.trade.StandardCDSTrade;
import com.opengamma.util.JodaBeanSerialization;
import com.opengamma.util.fudgemsg.OpenGammaFudgeContext;
import com.opengamma.util.test.TestGroup;
/**
* Tests the round trip serialization of the credit config items and standard/legacy cds
*/
@Test(groups = TestGroup.UNIT)
public class CreditSourcesTest {
@Test
public void standardCdsRoundTrip() {
StandardCDSTrade input = CreditPricingSampleData.createStandardCDSSecurity();
String xml = JodaBeanSerialization.serializer(true).xmlWriter().write(input);
StandardCDSTrade output = (StandardCDSTrade) JodaBeanSerialization.deserializer().xmlReader().read(xml);
assertEquals(input, output);
}
@Test
public void legacyCdsRoundTrip() {
LegacyCDSTrade input = CreditPricingSampleData.createLegacyCDSSecurity();
String xml = JodaBeanSerialization.serializer(true).xmlWriter().write(input);
LegacyCDSTrade output = (LegacyCDSTrade) JodaBeanSerialization.deserializer().xmlReader().read(xml);
assertEquals(input, output);
}
@Test
public void indexCdsRoundTrip() {
IndexCDSTrade input = CreditPricingSampleData.createIndexCDSSecurity();
String xml = JodaBeanSerialization.serializer(true).xmlWriter().write(input);
IndexCDSTrade output = (IndexCDSTrade) JodaBeanSerialization.deserializer().xmlReader().read(xml);
assertEquals(input, output);
}
@Test
public void restructuringSettingsRoundTrip() {
RestructuringSettings input = CreditPricingSampleData.createRestructuringSettings();
String xml = JodaBeanSerialization.serializer(true).xmlWriter().write(input);
RestructuringSettings output = (RestructuringSettings) JodaBeanSerialization.deserializer().xmlReader().read(xml);
assertEquals(input, output);
}
@Test
public void creditCurveDataSnapshotRoundTrip() {
CreditCurveDataSnapshot input = CreditPricingSampleData.createCreditCurveDataSnapshot();
String xml = JodaBeanSerialization.serializer(true).xmlWriter().write(input);
CreditCurveDataSnapshot output = (CreditCurveDataSnapshot) JodaBeanSerialization.deserializer().xmlReader().read(xml);
assertEquals(input, output);
FudgeMsg fudge = OpenGammaFudgeContext.getInstance().toFudgeMsg(input).getMessage();
CreditCurveDataSnapshot fudgeOutput = (CreditCurveDataSnapshot) OpenGammaFudgeContext.getInstance().fromFudgeMsg(fudge);
assertEquals(input, fudgeOutput);
}
@Test
public void createYieldCurveDataSnapshotRoundTrip() {
YieldCurveDataSnapshot input = CreditPricingSampleData.createYieldCurveDataSnapshot();
String xml = JodaBeanSerialization.serializer(true).xmlWriter().write(input);
YieldCurveDataSnapshot output = (YieldCurveDataSnapshot) JodaBeanSerialization.deserializer().xmlReader().read(xml);
assertEquals(input, output);
FudgeMsg fudge = OpenGammaFudgeContext.getInstance().toFudgeMsg(input).getMessage();
YieldCurveDataSnapshot fudgeOutput = (YieldCurveDataSnapshot) OpenGammaFudgeContext.getInstance().fromFudgeMsg(fudge);
assertEquals(input, fudgeOutput);
}
}