package org.sef4j.core; import java.util.Collection; import java.util.List; import org.junit.Assert; import org.sef4j.core.helpers.senders.InMemoryEventSender; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MockEventSender<T> extends InMemoryEventSender<T> { private static final Logger LOG = LoggerFactory.getLogger(MockEventSender.class); private final String displayName; private static int idGenerator = 1; private static int generateId() { return idGenerator++; } public MockEventSender() { this("MockEventSender-" + generateId()); } public MockEventSender(String displayName) { this.displayName = displayName; } @Override public void sendEvent(T event) { LOG.debug(displayName + " sendEvent"); super.sendEvent(event); } @Override public void sendEvents(Collection<T> events) { LOG.debug(displayName + " sendEvents"); super.sendEvents(events); } public void assertSameClearAndGet(@SuppressWarnings("unchecked") T... expected) { List<T> actual = clearAndGet(); Assert.assertEquals(expected.length, actual.size()); for(int i = 0; i < expected.length; i++) { Assert.assertSame(expected[i], actual.get(i)); } } }