/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.id;
import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertNull;
import org.fudgemsg.FudgeContext;
import org.fudgemsg.FudgeMsg;
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.AbstractFudgeBuilderTestCase;
import com.opengamma.util.test.TestGroup;
/**
* Test Fudge encoding.
*/
@Test(groups = TestGroup.UNIT)
public class UniqueIdFudgeEncodingTest extends AbstractFudgeBuilderTestCase {
public void test_simple() {
FudgeContext context = new FudgeContext();
context.getObjectDictionary().addBuilder(UniqueId.class, new UniqueIdFudgeBuilder());
setContext(context);
UniqueId object = UniqueId.of("A", "B");
assertEncodeDecodeCycle(UniqueId.class, object);
}
public void test_versioned() {
FudgeContext context = new FudgeContext();
context.getObjectDictionary().addBuilder(UniqueId.class, new UniqueIdFudgeBuilder());
setContext(context);
UniqueId object = UniqueId.of("A", "B", "C");
assertEncodeDecodeCycle(UniqueId.class, object);
}
public void test_secondaryType() {
FudgeContext context = new FudgeContext();
context.getTypeDictionary().addType(UniqueIdFudgeSecondaryType.INSTANCE);
setContext(context);
UniqueId object = UniqueId.of("A", "B");
assertEncodeDecodeCycle(UniqueId.class, object);
}
public void test_toFudgeMsg() {
UniqueId sample = UniqueId.of("A", "B", "C");
assertNull(UniqueIdFudgeBuilder.toFudgeMsg(new FudgeSerializer(OpenGammaFudgeContext.getInstance()), null));
assertNotNull(UniqueIdFudgeBuilder.toFudgeMsg(new FudgeSerializer(OpenGammaFudgeContext.getInstance()), sample));
}
public void test_fromFudgeMsg() {
assertNull(UniqueIdFudgeBuilder.fromFudgeMsg(new FudgeDeserializer(OpenGammaFudgeContext.getInstance()), null));
}
@Test(expectedExceptions = RuntimeException.class)
public void test_fromFudgeMsg_empty() {
FudgeMsg msg = getFudgeContext().newMessage();
assertNull(UniqueIdFudgeBuilder.fromFudgeMsg(new FudgeDeserializer(OpenGammaFudgeContext.getInstance()), msg));
}
}