package com.netflix.infix;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
public class AndEventFilterTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAllAcceptancesLeadToAcceptance() {
List<? extends Predicate<Object>> filters = ImmutableList.of(
VerificationUtil.getTrueFilter(),
VerificationUtil.getTrueFilter(),
VerificationUtil.getTrueFilter());
AndPredicate filter = new AndPredicate(filters);
assertTrue(filter.apply(VerificationUtil.DUMMY_INPUT));
}
@Test
public void testOneRejectionLeadsToRejection() {
List<? extends Predicate<Object>> filters = ImmutableList.of(
VerificationUtil.getTrueFilter(),
VerificationUtil.getTrueFilter(),
VerificationUtil.getFalseFilter()
);
AndPredicate filter = new AndPredicate(filters);
assertFalse(filter.apply(VerificationUtil.DUMMY_INPUT));
}
@Test
public void testAndEventFilterShortcuts() {
Predicate<Object> falseFilter = VerificationUtil.getFalseFilter();
Predicate<Object> trueFilter = VerificationUtil.getTrueFilter();
List<? extends Predicate<Object>> filters = ImmutableList.of(
falseFilter, trueFilter
);
assertFalse(new AndPredicate(filters).apply(VerificationUtil.DUMMY_INPUT));
verify(trueFilter, never()).apply(VerificationUtil.DUMMY_INPUT);
}
}