test: unit test npe

This commit is contained in:
ReaJason
2025-01-07 20:44:05 +08:00
parent 99c53b6287
commit b5903f39fa
2 changed files with 13 additions and 9 deletions
@@ -1,6 +1,7 @@
package com.reajason.javaweb.memshell.tomcat.command;
import com.reajason.javaweb.memshell.config.CommandConfig;
import com.reajason.javaweb.memshell.config.Constants;
import com.reajason.javaweb.memshell.config.ShellConfig;
import com.reajason.javaweb.memshell.generator.CommandGenerator;
import com.reajason.javaweb.memshell.shelltool.command.CommandFilter;
@@ -23,22 +24,23 @@ class CommandFilterTest {
static Stream<Arguments> casesProvider() {
return Stream.of(
arguments(CommandFilter.class, "org.apache.utils.CommandFilter"),
arguments(CommandListener.class, "org.apache.utils.CommandListener"),
arguments(CommandValve.class, "org.apache.utils.CommandValve")
arguments(Constants.FILTER, CommandFilter.class, "org.apache.utils.CommandFilter"),
arguments(Constants.LISTENER, CommandListener.class, "org.apache.utils.CommandListener"),
arguments(Constants.VALVE, CommandValve.class, "org.apache.utils.CommandValve")
);
}
@ParameterizedTest
@MethodSource("casesProvider")
void generate(Class<?> clazz, String className) {
void generate(String shellType, Class<?> clazz, String className) {
ShellConfig generateConfig = new ShellConfig();
CommandConfig shellConfig = CommandConfig.builder()
.shellClass(clazz)
.shellClassName(className)
.paramName("cmd")
.build();
generateConfig.setShellType(shellType);
byte[] bytes = CommandGenerator.generate(generateConfig, shellConfig);
Object obj = ClassUtils.newInstance(bytes);
assertEquals(shellConfig.getShellClassName(), obj.getClass().getName());
@@ -1,12 +1,13 @@
package com.reajason.javaweb.memshell.tomcat.godzilla;
import com.reajason.javaweb.memshell.config.Constants;
import com.reajason.javaweb.memshell.config.GodzillaConfig;
import com.reajason.javaweb.memshell.config.ShellConfig;
import com.reajason.javaweb.memshell.generator.GodzillaGenerator;
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter;
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaValve;
import com.reajason.javaweb.util.ClassUtils;
import com.reajason.javaweb.memshell.utils.CommonUtil;
import com.reajason.javaweb.util.ClassUtils;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
@@ -31,20 +32,21 @@ class GodzillaTest {
static Stream<Arguments> casesProvider() {
return Stream.of(
arguments(GodzillaFilter.class, "org.apache.utils.GodzillaFilter"),
arguments(GodzillaListener.class, "org.apache.utils.GodzillaListener"),
arguments(GodzillaValve.class, "org.apache.utils.GodzillaValve")
arguments(Constants.FILTER, GodzillaFilter.class, "org.apache.utils.GodzillaFilter"),
arguments(Constants.LISTENER, GodzillaListener.class, "org.apache.utils.GodzillaListener"),
arguments(Constants.VALVE, GodzillaValve.class, "org.apache.utils.GodzillaValve")
);
}
@ParameterizedTest
@MethodSource("casesProvider")
void generate(Class<?> clazz, String className) {
void generate(String shellType, Class<?> clazz, String className) {
GodzillaConfig shellConfig = shellConfigBuilder
.shellClassName(className)
.shellClass(clazz)
.build();
config.setShellType(shellType);
byte[] bytes = new GodzillaGenerator(config, shellConfig).getBytes();
Object obj = ClassUtils.newInstance(bytes);
assertEquals(shellConfig.getShellClassName(), obj.getClass().getName());