/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.util.money; import static org.testng.AssertJUnit.assertEquals; import org.fudgemsg.MutableFudgeMsg; import org.fudgemsg.UnmodifiableFudgeField; import org.fudgemsg.wire.types.FudgeWireType; import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; import com.opengamma.util.test.AbstractFudgeBuilderTestCase; import com.opengamma.util.test.TestGroup; /** * Test Fudge support. */ @Test(groups = TestGroup.UNIT) public class CurrencyFudgeEncodingTest extends AbstractFudgeBuilderTestCase { private static final Currency s_ref = Currency.USD; @Test public void testCycle() { assertEncodeDecodeCycle(Currency.class, s_ref); } @Test public void testFromString() { assertEquals(s_ref, getFudgeContext().getFieldValue(Currency.class, UnmodifiableFudgeField.of(FudgeWireType.STRING, s_ref.getCode()))); } @Test public void testFromUniqueId() { assertEquals(s_ref, getFudgeContext().getFieldValue(Currency.class, UnmodifiableFudgeField.of(FudgeWireType.STRING, s_ref.getUniqueId().toString()))); } @Test(expectedExceptions = IllegalArgumentException.class) public void testFromUniqueId_bad1() { getFudgeContext().getFieldValue(Currency.class, UnmodifiableFudgeField.of(FudgeWireType.STRING, "Rubbish~ID")); } @Test(expectedExceptions = IllegalArgumentException.class) public void testFromUniqueId_bad2() { getFudgeContext().getFieldValue(Currency.class, UnmodifiableFudgeField.of(FudgeWireType.STRING, Currency.OBJECT_SCHEME + "~Rubbish")); } //------------------------------------------------------------------------- @Test public void test_toFudgeMsg() { CurrencyFudgeBuilder bld = new CurrencyFudgeBuilder(); MutableFudgeMsg msg = bld.buildMessage(getFudgeSerializer(), s_ref); assertEquals(ImmutableSet.of(CurrencyFudgeBuilder.CURRENCY_FIELD_NAME), msg.getAllFieldNames()); assertEquals("USD", msg.getString(CurrencyFudgeBuilder.CURRENCY_FIELD_NAME)); } //------------------------------------------------------------------------- @Test public void test_fromFudgeMsg() { MutableFudgeMsg msg = getFudgeContext().newMessage(); msg.add(CurrencyFudgeBuilder.CURRENCY_FIELD_NAME, "USD"); CurrencyFudgeBuilder bld = new CurrencyFudgeBuilder(); bld.buildObject(getFudgeDeserializer(), msg); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_fromFudgeMsg_badMessage1() { MutableFudgeMsg msg = getFudgeContext().newMessage(); CurrencyFudgeBuilder bld = new CurrencyFudgeBuilder(); bld.buildObject(getFudgeDeserializer(), msg); } }