public static <T1, T2, T3, T4, R> Case<Tuple4<T1, T2, T3, T4>, R> Case(Predicate<T1> predicate1, Predicate<T2> predicate2, Predicate<T3> predicate3, Predicate<T4> predicate4, Supplier<R> supplier) { return new Case.Case4<>(predicate1, predicate2, predicate3, predicate4, val -> supplier.get()); }
@Test public void shouldMatchForAllPredicates() { Tuple4<String, Integer, String, Integer> tuple4 = new Tuple4<>("tuple", 2, "hello_world", 10); assertEquals("tuple4", new Case.Case4<>((String t1) -> t1.equals("tuple"), (Integer t2) -> t2.equals(2), (String t3) -> t3.equals("hello_world"), (Integer t4) -> t4.equals(10), (value) -> "tuple4").test(tuple4).orElse("")); }
public static <T1, T2, T3, T4, R> Case<Tuple4<T1, T2, T3, T4>, R> Case(Predicate<T1> predicate1, Predicate<T2> predicate2, Predicate<T3> predicate3, Predicate<T4> predicate4, Supplier<R> supplier) { return new Case.Case4<>(predicate1, predicate2, predicate3, predicate4, val -> supplier.get()); }
public static <T1, T2, T3, T4, R> Case<Tuple4<T1, T2, T3, T4>, R> Case(Predicate<T1> predicate1, Predicate<T2> predicate2, Predicate<T3> predicate3, Predicate<T4> predicate4, Function<Tuple4<T1, T2, T3, T4>, R> fn) { return new Case.Case4<>(predicate1, predicate2, predicate3, predicate4, fn); }
public static <T1, T2, T3, T4, R> Case<Tuple4<T1, T2, T3, T4>, R> Case(Predicate<T1> predicate1, Predicate<T2> predicate2, Predicate<T3> predicate3, Predicate<T4> predicate4, Function<Tuple4<T1, T2, T3, T4>, R> fn) { return new Case.Case4<>(predicate1, predicate2, predicate3, predicate4, fn); }
@Test public void shouldNotMatchForPartial() { Tuple4<String, Integer, String, Integer> tuple4 = new Tuple4<>("tuple", 2, "hello_world", 10); assertFalse(new Case.Case4<>((String t1) -> t1.equals("tuple"), (Integer t2) -> t2.equals(2), (String t3) -> t3.equals("hello_world"), (Integer t4) -> false, (value) -> "tuple4").test(tuple4).isPresent()); assertFalse(new Case.Case4<>((String t1) -> t1.equals("tuple"), (Integer t2) -> t2.equals(2), (String t3) -> false, (Integer t4) -> t4.equals(10), (value) -> "tuple4").test(tuple4).isPresent()); assertFalse(new Case.Case4<>((String t1) -> t1.equals("tuple"), (Integer t2) -> false, (String t3) -> t3.equals("hello_world"), (Integer t4) -> t4.equals(10), (value) -> "tuple4").test(tuple4).isPresent()); assertFalse(new Case.Case4<>((String t1) -> false, (Integer t2) -> t2.equals(2), (String t3) -> t3.equals("hello_world"), (Integer t4) -> t4.equals(10), (value) -> "tuple4").test(tuple4).isPresent()); assertFalse(new Case.Case4<>((String t1) -> false, (Integer t2) -> false, (String t3) -> false, (Integer t4) -> false, (value) -> "tuple4").test(tuple4).isPresent()); }