/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.currency; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import org.fudgemsg.FudgeContext; import org.fudgemsg.FudgeField; import org.fudgemsg.FudgeMsg; import org.fudgemsg.MutableFudgeMsg; import org.fudgemsg.wire.FudgeMsgReader; import org.fudgemsg.wire.FudgeMsgWriter; import org.testng.AssertJUnit; import org.testng.annotations.Test; import com.opengamma.util.fudgemsg.OpenGammaFudgeContext; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class CurrencyPairFudgeSecondaryTypeTest { private static final String CURRENCY_PAIR = "currencyPair"; /** * Writes a {@link CurrencyPair} to a Fudge message and reads it back. */ @Test public void roundTrip() { FudgeContext context = OpenGammaFudgeContext.getInstance(); CurrencyPair eurUsd = CurrencyPair.parse("EUR/USD"); MutableFudgeMsg msg = context.newMessage(); msg.add(CURRENCY_PAIR, eurUsd); ByteArrayOutputStream baos = new ByteArrayOutputStream(); FudgeMsgWriter writer = context.createMessageWriter(baos); writer.writeMessage(msg); writer.close(); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); FudgeMsgReader reader = context.createMessageReader(bais); FudgeMsg rebuiltMsg = reader.nextMessage(); AssertJUnit.assertNotNull(rebuiltMsg); FudgeField currencyPairField = rebuiltMsg.getByName(CURRENCY_PAIR); AssertJUnit.assertNotNull(currencyPairField); AssertJUnit.assertEquals(String.class, currencyPairField.getType().getJavaType()); CurrencyPair currencyPair = rebuiltMsg.getFieldValue(CurrencyPair.class, currencyPairField); AssertJUnit.assertEquals(eurUsd, currencyPair); } }