Skip to content

Commit 6b29f40

Browse files
committed
test: add test for HandlerInfoTest
1 parent 981ec08 commit 6b29f40

File tree

1 file changed

+132
-0
lines changed
  • aws-lambda-java-runtime-interface-client/src/test/java/com/amazonaws/services/lambda/runtime/api/client

1 file changed

+132
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
/*
2+
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package com.amazonaws.services.lambda.runtime.api.client;
7+
8+
import org.junit.jupiter.api.Test;
9+
import static org.junit.jupiter.api.Assertions.*;
10+
11+
class HandlerInfoTest {
12+
13+
@Test
14+
void testConstructor() {
15+
Class<?> testClass = String.class;
16+
String methodName = "testMethod";
17+
18+
HandlerInfo info = new HandlerInfo(testClass, methodName);
19+
20+
assertNotNull(info);
21+
assertEquals(testClass, info.clazz);
22+
assertEquals(methodName, info.methodName);
23+
}
24+
25+
@Test
26+
void testFromStringWithoutMethod() throws Exception {
27+
String handler = "java.lang.String";
28+
HandlerInfo info = HandlerInfo.fromString(handler, ClassLoader.getSystemClassLoader());
29+
30+
assertEquals(String.class, info.clazz);
31+
assertNull(info.methodName);
32+
}
33+
34+
@Test
35+
void testFromStringWithMethod() throws Exception {
36+
String handler = "java.lang.String::length";
37+
HandlerInfo info = HandlerInfo.fromString(handler, ClassLoader.getSystemClassLoader());
38+
39+
assertEquals(String.class, info.clazz);
40+
assertEquals("length", info.methodName);
41+
}
42+
43+
@Test
44+
void testFromStringWithEmptyClass() {
45+
String handler = "::method";
46+
47+
assertThrows(HandlerInfo.InvalidHandlerException.class, () ->
48+
HandlerInfo.fromString(handler, ClassLoader.getSystemClassLoader())
49+
);
50+
}
51+
52+
@Test
53+
void testFromStringWithEmptyMethod() {
54+
String handler = "java.lang.String::";
55+
56+
assertThrows(HandlerInfo.InvalidHandlerException.class, () ->
57+
HandlerInfo.fromString(handler, ClassLoader.getSystemClassLoader())
58+
);
59+
}
60+
61+
@Test
62+
void testFromStringWithNonexistentClass() {
63+
String handler = "com.nonexistent.TestClass::method";
64+
65+
assertThrows(ClassNotFoundException.class, () ->
66+
HandlerInfo.fromString(handler, ClassLoader.getSystemClassLoader())
67+
);
68+
}
69+
70+
@Test
71+
void testFromStringWithNullHandler() {
72+
assertThrows(NullPointerException.class, () ->
73+
HandlerInfo.fromString(null, ClassLoader.getSystemClassLoader())
74+
);
75+
}
76+
77+
@Test
78+
void testClassNameWithoutMethod() {
79+
String handler = "java.lang.String";
80+
String className = HandlerInfo.className(handler);
81+
82+
assertEquals("java.lang.String", className);
83+
}
84+
85+
@Test
86+
void testClassNameWithMethod() {
87+
String handler = "java.lang.String::length";
88+
String className = HandlerInfo.className(handler);
89+
90+
assertEquals("java.lang.String", className);
91+
}
92+
93+
@Test
94+
void testClassNameWithEmptyString() {
95+
String handler = "";
96+
String className = HandlerInfo.className(handler);
97+
98+
assertEquals("", className);
99+
}
100+
101+
@Test
102+
void testClassNameWithOnlyDelimiter() {
103+
String handler = "::";
104+
String className = HandlerInfo.className(handler);
105+
106+
assertEquals("", className);
107+
}
108+
109+
@Test
110+
void testInvalidHandlerExceptionSerialVersionUID() {
111+
assertEquals(-1L, HandlerInfo.InvalidHandlerException.serialVersionUID);
112+
}
113+
114+
@Test
115+
void testFromStringWithInnerClass() throws Exception {
116+
// Create a custom class loader that can load our test class
117+
ClassLoader cl = new ClassLoader() {
118+
@Override
119+
public Class<?> loadClass(String name) throws ClassNotFoundException {
120+
if (name.equals("com.test.OuterClass$InnerClass")) {
121+
throw new ClassNotFoundException("Test class not found");
122+
}
123+
return super.loadClass(name);
124+
}
125+
};
126+
127+
String handler = "com.test.OuterClass$InnerClass::method";
128+
assertThrows(ClassNotFoundException.class, () ->
129+
HandlerInfo.fromString(handler, cl)
130+
);
131+
}
132+
}

0 commit comments

Comments
 (0)