/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.master.historicaltimeseries.impl;
import static com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingFieldNames.DATA_PROVIDER_NAME;
import static com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingFieldNames.DATA_SOURCE_NAME;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;
import java.util.ArrayList;
import java.util.List;
import org.fudgemsg.FudgeContext;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeDeserializer;
import org.fudgemsg.mapping.FudgeSerializer;
import org.testng.annotations.Test;
import com.opengamma.util.fudgemsg.OpenGammaFudgeContext;
import com.opengamma.util.test.TestGroup;
/**
* Test {@link HistoricalTimeSeriesRating} Fudge.
*/
@Test(groups = TestGroup.UNIT)
public class HistoricalTimeSeriesRatingFudgeEncodingTest {
private static final FudgeContext s_fudgeContext = OpenGammaFudgeContext.getInstance();
public void fudgeEncoding() {
List<HistoricalTimeSeriesRatingRule> rules = new ArrayList<HistoricalTimeSeriesRatingRule>();
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_SOURCE_NAME, "BLOOMBERG", 2));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_SOURCE_NAME, "REUTERS", 1));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_PROVIDER_NAME, "CMPL", 3));
HistoricalTimeSeriesRating inputConfig = HistoricalTimeSeriesRating.of(rules);
FudgeSerializer serializationContext = new FudgeSerializer(s_fudgeContext);
MutableFudgeMsg inputMsg = serializationContext.objectToFudgeMsg(inputConfig);
FudgeMsg outputMsg = s_fudgeContext.deserialize(s_fudgeContext.toByteArray(inputMsg)).getMessage();
assertNotNull(outputMsg);
assertEquals(3, outputMsg.getNumFields());
FudgeDeserializer deserializationContext = new FudgeDeserializer(s_fudgeContext);
HistoricalTimeSeriesRating outputConfig = deserializationContext.fudgeMsgToObject(HistoricalTimeSeriesRating.class, outputMsg);
assertEquals(inputConfig, outputConfig);
}
}