### Question:
ChainableEventDataQueryFilter implements EventDataQueryFilter { @Override public void startNewDocument(Key documentKey) { for (int i = 0; i < filters.size(); i++) { filters.get(i).startNewDocument(documentKey); } } ChainableEventDataQueryFilter(); private  ChainableEventDataQueryFilter(ChainableEventDataQueryFilter other); void addFilter(EventDataQueryFilter filter); @Override void startNewDocument(Key documentKey); @Override boolean apply(@Nullable Map.Entry<Key,String> entry); @Override boolean peek(@Nullable Map.Entry<Key,String> entry); @Override boolean keep(Key k); @Override Key getStartKey(Key from); @Override Key getStopKey(Key from); @Override Range getKeyRange(Map.Entry<Key,Document> from); @Override EventDataQueryFilter clone(); @Override Range getSeekRange(Key current, Key endKey, boolean endKeyInclusive); @Override int getMaxNextCount(); @Override Key transform(Key toTransform);  }### Answer:
@Test public void startNewDocumentTest() { EventDataQueryFilter mockFilter1 = EasyMock.createMock(EventDataQueryFilter.class); EventDataQueryFilter mockFilter2 = EasyMock.createMock(EventDataQueryFilter.class); Key key = new Key(); mockFilter1.startNewDocument(key); mockFilter2.startNewDocument(key); EasyMock.replay(mockFilter1, mockFilter2); filter.addFilter(mockFilter1); filter.addFilter(mockFilter2); filter.startNewDocument(key); EasyMock.verify(mockFilter1, mockFilter2); }