### Question:
MergeDataElementProvider extends AbstractDataElementProvider<MergedDataRow> { @Override protected DataElement createDataElement(MergedDataRow item) { return createElt(getDataTypeInfo(), item); } MergeDataElementProvider(DataTypeInfo dataType, Iterable<MergedDataRow> sourceItems); static DataElement createElt(DataTypeInfo dti, MergedDataRow item);  }### Answer:
@Test public void testCreateDataElement() { EasyMockSupport support = new EasyMockSupport(); DataTypeInfo dataType = support.createMock(DataTypeInfo.class); Map<String, Serializable> data = New.map(); data.put(ourTestColumn, "testvalue"); MergedDataRow row1 = new MergedDataRow(data, null, TimeSpan.get()); data = New.map(); data.put(ourTestColumn, "testvalue2"); MergedDataRow row2 = new MergedDataRow(data, null, TimeSpan.get()); support.replayAll(); MergeDataElementProvider provider = new MergeDataElementProvider(dataType, New.list(row1, row2)); DataElement element1 = provider.next(); DataElement element2 = provider.next(); assertTrue(element1.getId() != element2.getId()); assertTrue(element1 instanceof DefaultDataElement); assertEquals(row1.getTimespan(), element1.getTimeSpan()); assertEquals(dataType, element1.getDataTypeInfo()); assertEquals("testvalue", element1.getMetaData().getValue(ourTestColumn)); assertTrue(element2 instanceof DefaultDataElement); assertEquals(row2.getTimespan(), element2.getTimeSpan()); assertEquals(dataType, element2.getDataTypeInfo()); assertEquals("testvalue2", element2.getMetaData().getValue(ourTestColumn)); support.verifyAll(); }