/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.util.fudgemsg.tuple; import org.testng.annotations.Test; import org.threeten.bp.LocalDate; import org.threeten.bp.ZonedDateTime; import com.opengamma.id.ExternalId; import com.opengamma.id.ExternalIdBundle; import com.opengamma.id.UniqueId; import com.opengamma.util.test.AbstractFudgeBuilderTestCase; import com.opengamma.util.test.TestGroup; import com.opengamma.util.time.Expiry; import com.opengamma.util.time.ExpiryAccuracy; import com.opengamma.util.time.Tenor; import com.opengamma.util.tuple.Triple; /** * Test Fudge encoding. */ @Test(groups = TestGroup.UNIT) public class TripleFudgeEncodingTest extends AbstractFudgeBuilderTestCase { public void test_objectAndReducedNumber() { Triple<String, ExternalIdBundle, Long> object = Triple.of("Hello", ExternalIdBundle.of(ExternalId.of("A", "B")), 6L); assertEncodeDecodeCycle(Triple.class, object); } public void test_objectAndSecondaryType() { Triple<String, UniqueId, LocalDate> object = Triple.of(null, UniqueId.of("A", "B"), LocalDate.of(2011, 6, 30)); assertEncodeDecodeCycle(Triple.class, object); } public void test_TypeWithSecondaryTypeAndBuilderEncoding() { Triple<Tenor, Tenor, Expiry> object = Triple.of(Tenor.DAY, Tenor.TEN_MONTHS, new Expiry(ZonedDateTime.now(), ExpiryAccuracy.DAY_MONTH_YEAR)); assertEncodeDecodeCycle(Triple.class, object); } public void test_nullFirst() { Triple<String, String, String> object = Triple.of(null, "B", "C"); assertEncodeDecodeCycle(Triple.class, object); } public void test_nullSecond() { Triple<String, String, String> object = Triple.of("A", null, "C"); assertEncodeDecodeCycle(Triple.class, object); } public void test_nullThird() { Triple<String, String, String> object = Triple.of("A", "B", null); assertEncodeDecodeCycle(Triple.class, object); } }