/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.livedata.test;
import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertTrue;
import java.util.Set;
import org.fudgemsg.FudgeField;
import org.fudgemsg.FudgeMsg;
import com.google.common.collect.Sets;
import com.opengamma.core.value.MarketDataRequirementNames;
/**
* Utility methods to test the conformity of messages to standard
* normalization rules.
*/
public class StandardRulesUtils {
public static void validateOpenGammaMsg(FudgeMsg msg) {
assertNotNull(msg);
Set<String> acceptableFields = Sets.newHashSet(
MarketDataRequirementNames.MARKET_VALUE,
MarketDataRequirementNames.VOLUME,
MarketDataRequirementNames.IMPLIED_VOLATILITY,
MarketDataRequirementNames.YIELD_CONVENTION_MID,
MarketDataRequirementNames.YIELD_YIELD_TO_MATURITY_MID,
MarketDataRequirementNames.DIRTY_PRICE_MID);
for (FudgeField field : msg.getAllFields()) {
assertTrue(acceptableFields + " does not contain " + field.getName(), acceptableFields.contains(field.getName()));
}
assertNotNull(msg.getDouble(MarketDataRequirementNames.MARKET_VALUE));
assertTrue(msg.getDouble(MarketDataRequirementNames.MARKET_VALUE) >= 0.0);
if (msg.getDouble(MarketDataRequirementNames.IMPLIED_VOLATILITY) != null) {
assertTrue(msg.getDouble(MarketDataRequirementNames.IMPLIED_VOLATILITY) >= 0.0);
}
}
}