/**
* Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.basics;
import static com.opengamma.strata.collect.TestHelper.assertSerialization;
import static com.opengamma.strata.collect.TestHelper.assertThrows;
import static com.opengamma.strata.collect.TestHelper.coverBeanEquals;
import static com.opengamma.strata.collect.TestHelper.coverImmutableBean;
import static org.testng.Assert.assertEquals;
import java.util.Map;
import java.util.Optional;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableMap;
/**
* Test {@link CombinedReferenceData}.
*/
@Test
public class CombinedReferenceDataTest {
private static final TestingReferenceDataId ID1 = new TestingReferenceDataId("1");
private static final TestingReferenceDataId ID2 = new TestingReferenceDataId("2");
private static final TestingReferenceDataId ID3 = new TestingReferenceDataId("3");
private static final TestingReferenceDataId ID4 = new TestingReferenceDataId("4");
private static final Double VAL1 = 123d;
private static final Double VAL2 = 234d;
private static final Double VAL3 = 999d;
private static final ImmutableReferenceData BASE_DATA1 = baseData1();
private static final ImmutableReferenceData BASE_DATA2 = baseData2();
//-------------------------------------------------------------------------
public void test_combination() {
CombinedReferenceData test = new CombinedReferenceData(BASE_DATA1, BASE_DATA2);
assertEquals(test.containsValue(ID1), true);
assertEquals(test.containsValue(ID2), true);
assertEquals(test.containsValue(ID3), true);
assertEquals(test.containsValue(ID4), false);
assertEquals(test.getValue(ID1), VAL1);
assertEquals(test.getValue(ID2), VAL2);
assertEquals(test.getValue(ID3), VAL3);
assertThrows(() -> test.getValue(ID4), ReferenceDataNotFoundException.class);
assertEquals(test.findValue(ID1), Optional.of(VAL1));
assertEquals(test.findValue(ID2), Optional.of(VAL2));
assertEquals(test.findValue(ID3), Optional.of(VAL3));
assertEquals(test.findValue(ID4), Optional.empty());
}
//-------------------------------------------------------------------------
public void coverage() {
CombinedReferenceData test = new CombinedReferenceData(BASE_DATA1, BASE_DATA2);
coverImmutableBean(test);
CombinedReferenceData test2 = new CombinedReferenceData(BASE_DATA2, BASE_DATA1);
coverBeanEquals(test, test2);
}
public void serialization() {
CombinedReferenceData test = new CombinedReferenceData(BASE_DATA1, BASE_DATA2);
assertSerialization(test);
}
//-------------------------------------------------------------------------
private static ImmutableReferenceData baseData1() {
Map<ReferenceDataId<?>, Object> dataMap = ImmutableMap.of(ID1, VAL1, ID2, VAL2);
return ImmutableReferenceData.of(dataMap);
}
private static ImmutableReferenceData baseData2() {
Map<ReferenceDataId<?>, Object> dataMap = ImmutableMap.of(ID1, VAL3, ID3, VAL3);
return ImmutableReferenceData.of(dataMap);
}
}