1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.lang3.function;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertFalse;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23
24 import java.lang.reflect.Method;
25 import java.util.function.BiFunction;
26
27 import org.apache.commons.lang3.exception.CustomUncheckedException;
28 import org.junit.jupiter.api.Test;
29
30
31
32
33 public class MethodInvokersBiFunctionTest extends MethodFixtures {
34
35 @Test
36 public void testApply1Arg() throws NoSuchMethodException, SecurityException {
37 final BiFunction<MethodFixtures, String, String> func = MethodInvokers.asBiFunction(getMethodForGetString1Arg());
38 assertEquals(INSTANCE.getString1Arg("A"), func.apply(INSTANCE, "A"));
39 }
40
41 @Test
42 public void testApply1ArgThrowsUnchecked() throws NoSuchMethodException, SecurityException {
43 final BiFunction<MethodFixtures, String, String> func = MethodInvokers.asBiFunction(getMethodForGetString1ArgThrowsUnchecked());
44 assertThrows(CustomUncheckedException.class, () -> func.apply(INSTANCE, "A"));
45 }
46
47 @Test
48 public void testConstructorForNull() throws SecurityException {
49 assertThrows(NullPointerException.class, () -> MethodInvokers.asBiFunction(null));
50 }
51
52 @Test
53 public void testFullExample() throws SecurityException, ReflectiveOperationException {
54 final Method method = String.class.getMethod("charAt", int.class);
55 final BiFunction<String, Integer, Character> function = MethodInvokers.asBiFunction(method);
56 assertEquals('C', function.apply("ABC", 2));
57 }
58
59 @Test
60 public void testToString() throws SecurityException, ReflectiveOperationException {
61
62 assertFalse(MethodInvokers.asBiFunction(getMethodForGetString1Arg()).toString().isEmpty());
63 }
64
65 }