Browse Source

Update ShellCommandExecutorTest.java

update unit test
pull/3/MERGE
小清 3 years ago committed by GitHub
parent
commit
83bd0ce78b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 70
      dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/shell/ShellCommandExecutorTest.java

70
dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/shell/ShellCommandExecutorTest.java

@ -24,10 +24,14 @@ import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.ExecutionStatus; import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
import org.apache.dolphinscheduler.common.utils.OSUtils; import org.apache.dolphinscheduler.common.utils.OSUtils;
import org.apache.dolphinscheduler.dao.entity.TaskInstance; import org.apache.dolphinscheduler.dao.entity.TaskInstance;
import org.apache.dolphinscheduler.server.entity.TaskExecutionContext;
import org.apache.dolphinscheduler.server.worker.task.AbstractCommandExecutor; import org.apache.dolphinscheduler.server.worker.task.AbstractCommandExecutor;
import org.apache.dolphinscheduler.server.worker.task.AbstractTask; import org.apache.dolphinscheduler.server.worker.task.AbstractTask;
import org.apache.dolphinscheduler.server.worker.task.ShellCommandExecutor;
import org.apache.dolphinscheduler.server.worker.task.TaskProps; import org.apache.dolphinscheduler.server.worker.task.TaskProps;
import org.apache.dolphinscheduler.service.bean.SpringApplicationContext;
import org.apache.dolphinscheduler.service.process.ProcessService; import org.apache.dolphinscheduler.service.process.ProcessService;
import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
@ -40,6 +44,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* python shell command executor test * python shell command executor test
@ -56,8 +61,11 @@ public class ShellCommandExecutorTest {
@Before @Before
public void before() { public void before() {
processService = PowerMockito.mock(ProcessService.class);
applicationContext = PowerMockito.mock(ApplicationContext.class); applicationContext = PowerMockito.mock(ApplicationContext.class);
processService = PowerMockito.mock(ProcessService.class);
SpringApplicationContext springApplicationContext = new SpringApplicationContext();
springApplicationContext.setApplicationContext(applicationContext);
PowerMockito.when(applicationContext.getBean(ProcessService.class)).thenReturn(processService);
} }
@Ignore @Ignore
@ -117,9 +125,8 @@ public class ShellCommandExecutorTest {
public void testParseProcessOutput() { public void testParseProcessOutput() {
Class<AbstractCommandExecutor> shellCommandExecutorClass = AbstractCommandExecutor.class; Class<AbstractCommandExecutor> shellCommandExecutorClass = AbstractCommandExecutor.class;
try { try {
Object instance = shellCommandExecutorClass.newInstance();
Method method = shellCommandExecutorClass.getDeclaredMethod("parseProcessOutput", new Class[]{Process.class}); Method method = shellCommandExecutorClass.getDeclaredMethod("parseProcessOutput", Process.class);
method.setAccessible(true); method.setAccessible(true);
Object[] arg1s = {new Process() { Object[] arg1s = {new Process() {
@Override @Override
@ -162,7 +169,22 @@ public class ShellCommandExecutorTest {
logger.info("unit test"); logger.info("unit test");
} }
} }; } };
AbstractCommandExecutor result = (AbstractCommandExecutor) method.invoke(instance, arg1s); method.invoke(new AbstractCommandExecutor(null, new TaskExecutionContext(), logger) {
@Override
protected String buildCommandFilePath() {
return null;
}
@Override
protected String commandInterpreter() {
return null;
}
@Override
protected void createCommandFileIfNotExists(String execCommand, String commandFile) throws IOException {
}
}, arg1s);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
} }
@ -172,12 +194,26 @@ public class ShellCommandExecutorTest {
public void testFindAppId() { public void testFindAppId() {
Class<AbstractCommandExecutor> shellCommandExecutorClass = AbstractCommandExecutor.class; Class<AbstractCommandExecutor> shellCommandExecutorClass = AbstractCommandExecutor.class;
try { try {
Object instance = shellCommandExecutorClass.newInstance();
Method method = shellCommandExecutorClass.getDeclaredMethod("findAppId", new Class[]{String.class}); Method method = shellCommandExecutorClass.getDeclaredMethod("findAppId", new Class[]{String.class});
method.setAccessible(true); method.setAccessible(true);
Object[] arg1s = {"11111"}; Object[] arg1s = {"11111"};
AbstractCommandExecutor result = (AbstractCommandExecutor) method.invoke(instance, arg1s); String result = (String) method.invoke(new AbstractCommandExecutor(null, null, null) {
@Override
protected String buildCommandFilePath() {
return null;
}
@Override
protected String commandInterpreter() {
return null;
}
@Override
protected void createCommandFileIfNotExists(String execCommand, String commandFile) throws IOException {
}
}, arg1s);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
} }
@ -187,12 +223,26 @@ public class ShellCommandExecutorTest {
public void testConvertFile2List() { public void testConvertFile2List() {
Class<AbstractCommandExecutor> shellCommandExecutorClass = AbstractCommandExecutor.class; Class<AbstractCommandExecutor> shellCommandExecutorClass = AbstractCommandExecutor.class;
try { try {
Object instance = shellCommandExecutorClass.newInstance(); Method method = shellCommandExecutorClass.getDeclaredMethod("convertFile2List", String.class);
Method method = shellCommandExecutorClass.getDeclaredMethod("convertFile2List", new Class[]{String.class});
method.setAccessible(true); method.setAccessible(true);
Object[] arg1s = {"/opt/1.txt"}; Object[] arg1s = {"/opt/1.txt"};
AbstractCommandExecutor result = (AbstractCommandExecutor) method.invoke(instance, arg1s); List<String> result = (List<String>) method.invoke(new AbstractCommandExecutor(null, null, null) {
@Override
protected String buildCommandFilePath() {
return null;
}
@Override
protected String commandInterpreter() {
return null;
}
@Override
protected void createCommandFileIfNotExists(String execCommand, String commandFile) throws IOException {
}
}, arg1s);
Assert.assertTrue(true);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
} }

Loading…
Cancel
Save