package org.sef4j.core.helpers.ioeventchain; import org.junit.Test; import org.sef4j.core.MockEvent; import org.sef4j.core.MockEvent.MockEventValueContainsPredicate; import org.sef4j.core.MockEventSender; import org.sef4j.core.api.ioeventchain.InputEventChain.ListenerHandle; public class FilterInputEventChainTest { MockEventSender<MockEvent> mockResult = new MockEventSender<MockEvent>(); MockInputEventChain mockUnderlying = new MockInputEventChain(); FilterInputEventChain<MockEvent> sut = new FilterInputEventChain<MockEvent>("test", mockUnderlying, MockEventValueContainsPredicate.CONTAINS_1); @Test public void testRegisterEventListener_underlyingSendEvent_unregisterEventListener() { // Prepare ListenerHandle<MockEvent> subscr = sut.registerEventListener(mockResult); // Perform mockUnderlying.sendEvent(MockEvent.E1); mockUnderlying.sendEvent(MockEvent.E2); sut.unregisterEventListener(subscr); // Post-check // receive events: calls myEventCallback.sendEvents(..) mockResult.assertSameClearAndGet(MockEvent.E1); // Perform mockUnderlying.sendEvent(MockEvent.E1); // Post-check mockResult.assertSameClearAndGet(); } }