package org.pitest.functional.predicate;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.pitest.functional.prelude.Prelude.and;
import org.junit.Test;
public class AndTest {
@SuppressWarnings("unchecked")
@Test
public void shouldReturnFalseWhenSuppliedNoPredicate() {
final And<Object> testee = and();
assertFalse(testee.apply(null));
}
@SuppressWarnings("unchecked")
@Test
public void shouldBeTrueWhenGivenTrue() {
final And<Object> testee = and(True.all());
assertTrue(testee.apply(null));
}
@SuppressWarnings("unchecked")
@Test
public void shouldBeFalseWhenGivenFalse() {
final And<Object> testee = and(False.instance());
assertFalse(testee.apply(null));
}
@SuppressWarnings("unchecked")
@Test
public void shouldBeTrueWhenGivenTrueAndTrue() {
final And<Object> testee = and(True.all(), True.all());
assertTrue(testee.apply(null));
}
@SuppressWarnings("unchecked")
@Test
public void shouldBeFalseWhenGivenTrueAndFalse() {
final And<Object> testee = and(True.all(), False.instance());
assertFalse(testee.apply(null));
}
@SuppressWarnings("unchecked")
@Test
public void shouldBeFalseWhenGivenFalseAndFalse() {
final And<Object> testee = and(False.instance(), False.instance());
assertFalse(testee.apply(null));
}
}