package org.sef4j.core.api.logger;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.sef4j.core.api.EventSender;
import org.sef4j.core.helpers.senders.InMemoryEventSender;
public class EventLoggerTest {
private static class E {}
private InMemoryEventSender<E> inMemoryEventSender;
private EventLogger sut;
@Before
public void setup() {
inMemoryEventSender = new InMemoryEventSender<E>();
EventLoggerFactory eventLoggerFactory = new EventLoggerFactory(new EventLoggerContext() {
@SuppressWarnings("unchecked")
@Override
public EventSender<E>[] getInheritedAppendersFor(String eventLoggerName) {
return (EventSender<E>[]) new EventSender<?>[] { inMemoryEventSender };
}
});
sut = eventLoggerFactory.getEventLogger("test");
}
@Test
public void testSendEvent() {
// Prepare
E event0 = new E();
E event1 = new E();
// Perform
sut.sendEvent(event0);
sut.sendEvent(event1);
// Post-check
List<E> res = inMemoryEventSender.clearAndGet();
Assert.assertEquals(2, res.size());
Assert.assertSame(event0, res.get(0));
Assert.assertSame(event1, res.get(1));
}
}