BoYiZhang
4 years ago
committed by
GitHub
11 changed files with 274 additions and 90 deletions
@ -0,0 +1,103 @@ |
|||||||
|
/* |
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||||
|
* contributor license agreements. See the NOTICE file distributed with |
||||||
|
* this work for additional information regarding copyright ownership. |
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||||
|
* (the "License"); you may not use this file except in compliance with |
||||||
|
* the License. You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.apache.dolphinscheduler.server.worker.task; |
||||||
|
|
||||||
|
import org.apache.dolphinscheduler.common.utils.LoggerUtils; |
||||||
|
import org.apache.dolphinscheduler.server.entity.TaskExecutionContext; |
||||||
|
import org.apache.dolphinscheduler.server.worker.cache.impl.TaskExecutionContextCacheManagerImpl; |
||||||
|
import org.apache.dolphinscheduler.service.bean.SpringApplicationContext; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Before; |
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runner.RunWith; |
||||||
|
import org.powermock.api.mockito.PowerMockito; |
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest; |
||||||
|
import org.powermock.modules.junit4.PowerMockRunner; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
@RunWith(PowerMockRunner.class) |
||||||
|
@PrepareForTest({SpringApplicationContext.class}) |
||||||
|
public class TaskManagerTest { |
||||||
|
|
||||||
|
private TaskExecutionContext taskExecutionContext; |
||||||
|
|
||||||
|
private Logger taskLogger; |
||||||
|
|
||||||
|
private TaskExecutionContextCacheManagerImpl taskExecutionContextCacheManager; |
||||||
|
|
||||||
|
@Before |
||||||
|
public void before() { |
||||||
|
// init task execution context, logger
|
||||||
|
taskExecutionContext = new TaskExecutionContext(); |
||||||
|
taskExecutionContext.setProcessId(12345); |
||||||
|
taskExecutionContext.setProcessDefineId(1); |
||||||
|
taskExecutionContext.setProcessInstanceId(1); |
||||||
|
taskExecutionContext.setTaskInstanceId(1); |
||||||
|
taskExecutionContext.setTaskType(""); |
||||||
|
taskExecutionContext.setFirstSubmitTime(new Date()); |
||||||
|
taskExecutionContext.setDelayTime(0); |
||||||
|
taskExecutionContext.setLogPath("/tmp/test.log"); |
||||||
|
taskExecutionContext.setHost("localhost"); |
||||||
|
taskExecutionContext.setExecutePath("/tmp/dolphinscheduler/exec/process/1/2/3/4"); |
||||||
|
|
||||||
|
taskLogger = LoggerFactory.getLogger(LoggerUtils.buildTaskId( |
||||||
|
LoggerUtils.TASK_LOGGER_INFO_PREFIX, |
||||||
|
taskExecutionContext.getProcessDefineId(), |
||||||
|
taskExecutionContext.getProcessInstanceId(), |
||||||
|
taskExecutionContext.getTaskInstanceId() |
||||||
|
)); |
||||||
|
|
||||||
|
taskExecutionContextCacheManager = new TaskExecutionContextCacheManagerImpl(); |
||||||
|
taskExecutionContextCacheManager.cacheTaskExecutionContext(taskExecutionContext); |
||||||
|
|
||||||
|
PowerMockito.mockStatic(SpringApplicationContext.class); |
||||||
|
PowerMockito.when(SpringApplicationContext.getBean(TaskExecutionContextCacheManagerImpl.class)) |
||||||
|
.thenReturn(taskExecutionContextCacheManager); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testNewTask() { |
||||||
|
|
||||||
|
taskExecutionContext.setTaskType("SHELL"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("WATERDROP"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("HTTP"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("MR"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("SPARK"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("FLINK"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("PYTHON"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("DATAX"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
taskExecutionContext.setTaskType("SQOOP"); |
||||||
|
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger)); |
||||||
|
//taskExecutionContext.setTaskType(null);
|
||||||
|
//Assert.assertNull(TaskManager.newTask(taskExecutionContext,taskLogger));
|
||||||
|
//taskExecutionContext.setTaskType("XXX");
|
||||||
|
//Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger));
|
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue