mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
test: unit test npe
This commit is contained in:
+6
-4
@@ -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());
|
||||
|
||||
+7
-5
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user