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 org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
public class AndMessageFilterTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAllAcceptancesLeadToAcceptance() {
List<? extends MessageFilter> filters = ImmutableList.of(
VerificationUtil.getTrueFilter(),
VerificationUtil.getTrueFilter(),
VerificationUtil.getTrueFilter());
AndMessageFilter filter = new AndMessageFilter(filters);
assertTrue(filter.apply(VerificationUtil.DUMMY_INPUT));
}
@Test
public void testOneRejectionLeadsToRejection() {
List<? extends MessageFilter> filters = ImmutableList.of(
VerificationUtil.getTrueFilter(),
VerificationUtil.getTrueFilter(),
VerificationUtil.getFalseFilter()
);
AndMessageFilter filter = new AndMessageFilter(filters);
assertFalse(filter.apply(VerificationUtil.DUMMY_INPUT));
}
@Test
public void testAndMessageFilterShortcuts() {
MessageFilter falseFilter = VerificationUtil.getFalseFilter();
MessageFilter trueFilter = VerificationUtil.getTrueFilter();
List<? extends MessageFilter> filters = ImmutableList.of(
falseFilter, trueFilter
);
assertFalse(new AndMessageFilter(filters).apply(VerificationUtil.DUMMY_INPUT));
verify(trueFilter, never()).apply(VerificationUtil.DUMMY_INPUT);
}
}