### Question:
CombinedReferenceData implements ReferenceData, ImmutableBean, Serializable { @Override public boolean containsValue(ReferenceDataId<?> id) { return refData1.containsValue(id) || refData2.containsValue(id); } CombinedReferenceData(
      ReferenceData refData1,
      ReferenceData refData2); @Override boolean containsValue(ReferenceDataId<?> id); @Override T queryValueOrNull(ReferenceDataId<T> id); static TypedMetaBean<CombinedReferenceData> meta(); @Override TypedMetaBean<CombinedReferenceData> metaBean(); ReferenceData getRefData1(); ReferenceData getRefData2(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_combination() { CombinedReferenceData test = new CombinedReferenceData(BASE_DATA1, BASE_DATA2); assertThat(test.containsValue(ID1)).isEqualTo(true); assertThat(test.containsValue(ID2)).isEqualTo(true); assertThat(test.containsValue(ID3)).isEqualTo(true); assertThat(test.containsValue(ID4)).isEqualTo(false); assertThat(test.getValue(ID1)).isEqualTo(VAL1); assertThat(test.getValue(ID2)).isEqualTo(VAL2); assertThat(test.getValue(ID3)).isEqualTo(VAL3); assertThatExceptionOfType(ReferenceDataNotFoundException.class).isThrownBy(() -> test.getValue(ID4)); assertThat(test.findValue(ID1)).isEqualTo(Optional.of(VAL1)); assertThat(test.findValue(ID2)).isEqualTo(Optional.of(VAL2)); assertThat(test.findValue(ID3)).isEqualTo(Optional.of(VAL3)); assertThat(test.findValue(ID4)).isEqualTo(Optional.empty()); }