|
|
|
@ -16,37 +16,83 @@
|
|
|
|
|
*/ |
|
|
|
|
package org.apache.dolphinscheduler.api.service; |
|
|
|
|
|
|
|
|
|
import org.apache.dolphinscheduler.api.ApiApplicationServer; |
|
|
|
|
import org.apache.dolphinscheduler.api.enums.Status; |
|
|
|
|
import org.apache.dolphinscheduler.api.utils.Result; |
|
|
|
|
import org.apache.dolphinscheduler.common.enums.UserType; |
|
|
|
|
import org.apache.dolphinscheduler.dao.entity.User; |
|
|
|
|
import org.apache.dolphinscheduler.dao.ProcessDao; |
|
|
|
|
import org.apache.dolphinscheduler.dao.entity.TaskInstance; |
|
|
|
|
import org.junit.Assert; |
|
|
|
|
import org.junit.Test; |
|
|
|
|
import org.junit.runner.RunWith; |
|
|
|
|
import org.mockito.InjectMocks; |
|
|
|
|
import org.mockito.Mock; |
|
|
|
|
import org.mockito.Mockito; |
|
|
|
|
import org.mockito.junit.MockitoJUnitRunner; |
|
|
|
|
import org.powermock.core.classloader.annotations.PrepareForTest; |
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.boot.test.context.SpringBootTest; |
|
|
|
|
import org.springframework.test.context.junit4.SpringRunner; |
|
|
|
|
|
|
|
|
|
@RunWith(SpringRunner.class) |
|
|
|
|
@SpringBootTest(classes = ApiApplicationServer.class) |
|
|
|
|
@RunWith(MockitoJUnitRunner.class) |
|
|
|
|
@PrepareForTest({LoggerService.class}) |
|
|
|
|
public class LoggerServiceTest { |
|
|
|
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(LoggerServiceTest.class); |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
@InjectMocks |
|
|
|
|
private LoggerService loggerService; |
|
|
|
|
@Mock |
|
|
|
|
private ProcessDao processDao; |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void queryDataSourceList(){ |
|
|
|
|
|
|
|
|
|
User loginUser = new User(); |
|
|
|
|
loginUser.setId(27); |
|
|
|
|
loginUser.setUserType(UserType.GENERAL_USER); |
|
|
|
|
@Test |
|
|
|
|
public void testQueryDataSourceList(){ |
|
|
|
|
|
|
|
|
|
Result result = loggerService.queryLog(-1, 0, 100); |
|
|
|
|
TaskInstance taskInstance = new TaskInstance(); |
|
|
|
|
Mockito.when(processDao.findTaskInstanceById(1)).thenReturn(taskInstance); |
|
|
|
|
Result result = loggerService.queryLog(2,1,1); |
|
|
|
|
//TASK_INSTANCE_NOT_FOUND
|
|
|
|
|
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND.getCode(),result.getCode().intValue()); |
|
|
|
|
|
|
|
|
|
//HOST NOT FOUND
|
|
|
|
|
result = loggerService.queryLog(1,1,1); |
|
|
|
|
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND.getCode(),result.getCode().intValue()); |
|
|
|
|
|
|
|
|
|
//SUCCESS
|
|
|
|
|
taskInstance.setHost("127.0.0.1"); |
|
|
|
|
taskInstance.setLogPath("/temp/log"); |
|
|
|
|
Mockito.when(processDao.findTaskInstanceById(1)).thenReturn(taskInstance); |
|
|
|
|
result = loggerService.queryLog(1,1,1); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testGetLogBytes(){ |
|
|
|
|
|
|
|
|
|
TaskInstance taskInstance = new TaskInstance(); |
|
|
|
|
Mockito.when(processDao.findTaskInstanceById(1)).thenReturn(taskInstance); |
|
|
|
|
|
|
|
|
|
//task instance is null
|
|
|
|
|
try{ |
|
|
|
|
loggerService.getLogBytes(2); |
|
|
|
|
}catch (RuntimeException e){ |
|
|
|
|
Assert.assertTrue(true); |
|
|
|
|
logger.error("testGetLogBytes error: {}","task instance is null"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//task instance host is null
|
|
|
|
|
try{ |
|
|
|
|
loggerService.getLogBytes(1); |
|
|
|
|
}catch (RuntimeException e){ |
|
|
|
|
Assert.assertTrue(true); |
|
|
|
|
logger.error("testGetLogBytes error: {}","task instance host is null"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//success
|
|
|
|
|
taskInstance.setHost("127.0.0.1"); |
|
|
|
|
taskInstance.setLogPath("/temp/log"); |
|
|
|
|
//if use @RunWith(PowerMockRunner.class) mock object,sonarcloud will not calculate the coverage,
|
|
|
|
|
// so no assert will be added here
|
|
|
|
|
loggerService.getLogBytes(1); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |