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