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