/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.fudgemsg;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeSerializer;
import org.testng.annotations.Test;
import com.opengamma.financial.analytics.fxforwardcurve.BloombergFXForwardCurveInstrumentProvider;
import com.opengamma.util.test.TestGroup;
/**
* Test the Fudge builder for {@link BloombergFXForwardCurveInstrumentProviderFudgeBuilder}
*/
@Test(groups = TestGroup.UNIT)
public class BloombergFXForwardCurveInstrumentProviderFudgeBuilderTest extends FinancialTestBase {
/**
* Tests cycling the object.
*/
@Test
public void test() {
final String prefix = "EUR";
final String postfix = "Curncy";
final String spotPrefix = "EU";
final String dataFieldName = "PRICE";
final FudgeSerializer fudgeSerializationContext = new FudgeSerializer(getFudgeContext());
BloombergFXForwardCurveInstrumentProvider provider = new BloombergFXForwardCurveInstrumentProvider(prefix, postfix, spotPrefix, dataFieldName);
MutableFudgeMsg message = fudgeSerializationContext.newMessage();
fudgeSerializationContext.addToMessageWithClassHeaders(message, "test", null, provider, BloombergFXForwardCurveInstrumentProvider.class);
assertEquals(provider, cycleObject(BloombergFXForwardCurveInstrumentProvider.class, provider));
FudgeMsg submessage = (FudgeMsg) (message.getByName("test").getValue());
assertFalse(submessage.getBoolean("useSpotRateFromGraph"));
provider = new BloombergFXForwardCurveInstrumentProvider(spotPrefix, postfix, dataFieldName);
message = fudgeSerializationContext.newMessage();
fudgeSerializationContext.addToMessageWithClassHeaders(message, "test", null, provider, BloombergFXForwardCurveInstrumentProvider.class);
assertEquals(provider, cycleObject(BloombergFXForwardCurveInstrumentProvider.class, provider));
submessage = (FudgeMsg) (message.getByName("test").getValue());
assertTrue(submessage.getBoolean("useSpotRateFromGraph"));
}
}