package com.netflix.suro.routing.filter; import com.google.common.collect.ImmutableList; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; import static com.netflix.suro.routing.filter.VerificationUtil.*; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; public class OrMessageFilterTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testAllRejectionsLeadToRejection() { List<? extends MessageFilter> filters = ImmutableList.of(getFalseFilter(), getFalseFilter(), getFalseFilter()); OrMessageFilter filter = new OrMessageFilter(filters); assertFalse(filter.apply(DUMMY_INPUT)); } @Test public void testOneAcceptanceLeadsToAcceptance() { List<? extends MessageFilter> filters = ImmutableList.of(getFalseFilter(), getTrueFilter(), getFalseFilter()); OrMessageFilter filter = new OrMessageFilter(filters); assertTrue(filter.apply(DUMMY_INPUT)); } @Test public void testOrMessageFilterShortcuts() { MessageFilter falseFilter = getFalseFilter(); MessageFilter trueFilter = getTrueFilter(); List<? extends MessageFilter> filters = ImmutableList.of(trueFilter, falseFilter); assertTrue(new OrMessageFilter(filters).apply(DUMMY_INPUT)); verify(falseFilter, never()).apply(DUMMY_INPUT); } }