[Improvement][Test] Migrate all UT cases from jUnit4 to jUnit5 in task-plugin module as an example (#12299)

* Migrate all UT cases from jUnit4 to jUnit5 in task-plugin module as an example
This commit is contained in:
Eric Gao 2022-10-11 11:54:38 +08:00 committed by GitHub
parent 18ef0a66cb
commit 875682d267
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
57 changed files with 1227 additions and 1169 deletions

View File

@ -16,11 +16,12 @@
*/
package org.apache.dolphinscheduler.plugin.task.api;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class AbstractTaskTest {
@ -33,8 +34,8 @@ public class AbstractTaskTest {
if (matcher.find()) {
str = matcher.group();
}
Assert.assertNotNull(str);
Assert.assertEquals(jobId, str.substring(6));
Assertions.assertNotNull(str);
Assertions.assertEquals(jobId, str.substring(6));
}
}

View File

@ -1,22 +0,0 @@
package org.apache.dolphinscheduler.plugin.task.api;/*
* 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.
*/
public class TaskTest {
}

View File

@ -17,30 +17,31 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class CheckTypeTest {
@Test
public void testGetCode() {
assertEquals(0, CheckType.COMPARISON_MINUS_STATISTICS.getCode());
assertEquals(1, CheckType.STATISTICS_MINUS_COMPARISON.getCode());
assertEquals(2, CheckType.STATISTICS_COMPARISON_PERCENTAGE.getCode());
assertEquals(3, CheckType.STATISTICS_COMPARISON_DIFFERENCE_COMPARISON_PERCENTAGE.getCode());
Assertions.assertEquals(0, CheckType.COMPARISON_MINUS_STATISTICS.getCode());
Assertions.assertEquals(1, CheckType.STATISTICS_MINUS_COMPARISON.getCode());
Assertions.assertEquals(2, CheckType.STATISTICS_COMPARISON_PERCENTAGE.getCode());
Assertions.assertEquals(3, CheckType.STATISTICS_COMPARISON_DIFFERENCE_COMPARISON_PERCENTAGE.getCode());
}
@Test
public void testGetDescription() {
assertEquals("comparison_minus_statistics", CheckType.COMPARISON_MINUS_STATISTICS.getDescription());
assertEquals("statistics_minus_comparison", CheckType.STATISTICS_MINUS_COMPARISON.getDescription());
assertEquals("statistics_comparison_percentage", CheckType.STATISTICS_COMPARISON_PERCENTAGE.getDescription());
assertEquals("statistics_comparison_difference_comparison_percentage", CheckType.STATISTICS_COMPARISON_DIFFERENCE_COMPARISON_PERCENTAGE.getDescription());
Assertions.assertEquals("comparison_minus_statistics", CheckType.COMPARISON_MINUS_STATISTICS.getDescription());
Assertions.assertEquals("statistics_minus_comparison", CheckType.STATISTICS_MINUS_COMPARISON.getDescription());
Assertions.assertEquals("statistics_comparison_percentage",
CheckType.STATISTICS_COMPARISON_PERCENTAGE.getDescription());
Assertions.assertEquals("statistics_comparison_difference_comparison_percentage",
CheckType.STATISTICS_COMPARISON_DIFFERENCE_COMPARISON_PERCENTAGE.getDescription());
}
@Test
public void testOf() {
assertEquals(CheckType.COMPARISON_MINUS_STATISTICS, CheckType.of(0));
Assertions.assertEquals(CheckType.COMPARISON_MINUS_STATISTICS, CheckType.of(0));
}
}

View File

@ -17,26 +17,25 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class ConnectorTypeTest {
@Test
public void testGetCode() {
assertEquals(0, ConnectorType.JDBC.getCode());
assertEquals(1, ConnectorType.HIVE.getCode());
Assertions.assertEquals(0, ConnectorType.JDBC.getCode());
Assertions.assertEquals(1, ConnectorType.HIVE.getCode());
}
@Test
public void testGetDescription() {
assertEquals("JDBC", ConnectorType.JDBC.getDescription());
assertEquals("HIVE", ConnectorType.HIVE.getDescription());
Assertions.assertEquals("JDBC", ConnectorType.JDBC.getDescription());
Assertions.assertEquals("HIVE", ConnectorType.HIVE.getDescription());
}
@Test
public void testOf() {
assertEquals(ConnectorType.JDBC, ConnectorType.of(0));
Assertions.assertEquals(ConnectorType.JDBC, ConnectorType.of(0));
}
}

View File

@ -17,27 +17,26 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class DqFailureStrategyTest {
@Test
public void testGetCode() {
assertEquals(0, DqFailureStrategy.ALERT.getCode());
assertEquals(1, DqFailureStrategy.BLOCK.getCode());
Assertions.assertEquals(0, DqFailureStrategy.ALERT.getCode());
Assertions.assertEquals(1, DqFailureStrategy.BLOCK.getCode());
}
@Test
public void testGetDescription() {
assertEquals("alert", DqFailureStrategy.ALERT.getDescription());
assertEquals("block", DqFailureStrategy.BLOCK.getDescription());
Assertions.assertEquals("alert", DqFailureStrategy.ALERT.getDescription());
Assertions.assertEquals("block", DqFailureStrategy.BLOCK.getDescription());
}
@Test
public void testOf() {
assertEquals(DqFailureStrategy.ALERT, DqFailureStrategy.of(0));
assertEquals(DqFailureStrategy.BLOCK, DqFailureStrategy.of(1));
Assertions.assertEquals(DqFailureStrategy.ALERT, DqFailureStrategy.of(0));
Assertions.assertEquals(DqFailureStrategy.BLOCK, DqFailureStrategy.of(1));
}
}

View File

@ -17,30 +17,29 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class DqTaskStateTest {
@Test
public void testGetCode() {
assertEquals(0, DqTaskState.DEFAULT.getCode());
assertEquals(1, DqTaskState.SUCCESS.getCode());
assertEquals(2, DqTaskState.FAILURE.getCode());
Assertions.assertEquals(0, DqTaskState.DEFAULT.getCode());
Assertions.assertEquals(1, DqTaskState.SUCCESS.getCode());
Assertions.assertEquals(2, DqTaskState.FAILURE.getCode());
}
@Test
public void testGetDescription() {
assertEquals("default", DqTaskState.DEFAULT.getDescription());
assertEquals("success", DqTaskState.SUCCESS.getDescription());
assertEquals("failure", DqTaskState.FAILURE.getDescription());
Assertions.assertEquals("default", DqTaskState.DEFAULT.getDescription());
Assertions.assertEquals("success", DqTaskState.SUCCESS.getDescription());
Assertions.assertEquals("failure", DqTaskState.FAILURE.getDescription());
}
@Test
public void testOf() {
assertEquals(DqTaskState.DEFAULT, DqTaskState.of(0));
assertEquals(DqTaskState.SUCCESS, DqTaskState.of(1));
assertEquals(DqTaskState.FAILURE, DqTaskState.of(2));
Assertions.assertEquals(DqTaskState.DEFAULT, DqTaskState.of(0));
Assertions.assertEquals(DqTaskState.SUCCESS, DqTaskState.of(1));
Assertions.assertEquals(DqTaskState.FAILURE, DqTaskState.of(2));
}
}

View File

@ -17,30 +17,29 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class ExecuteSqlTypeTest {
@Test
public void testGetCode() {
assertEquals(0, ExecuteSqlType.MIDDLE.getCode());
assertEquals(1, ExecuteSqlType.STATISTICS.getCode());
assertEquals(2, ExecuteSqlType.COMPARISON.getCode());
Assertions.assertEquals(0, ExecuteSqlType.MIDDLE.getCode());
Assertions.assertEquals(1, ExecuteSqlType.STATISTICS.getCode());
Assertions.assertEquals(2, ExecuteSqlType.COMPARISON.getCode());
}
@Test
public void testGetDescription() {
assertEquals("middle", ExecuteSqlType.MIDDLE.getDescription());
assertEquals("statistics", ExecuteSqlType.STATISTICS.getDescription());
assertEquals("comparison", ExecuteSqlType.COMPARISON.getDescription());
Assertions.assertEquals("middle", ExecuteSqlType.MIDDLE.getDescription());
Assertions.assertEquals("statistics", ExecuteSqlType.STATISTICS.getDescription());
Assertions.assertEquals("comparison", ExecuteSqlType.COMPARISON.getDescription());
}
@Test
public void testOf() {
assertEquals(ExecuteSqlType.MIDDLE, ExecuteSqlType.of(0));
assertEquals(ExecuteSqlType.STATISTICS, ExecuteSqlType.of(1));
assertEquals(ExecuteSqlType.COMPARISON, ExecuteSqlType.of(2));
Assertions.assertEquals(ExecuteSqlType.MIDDLE, ExecuteSqlType.of(0));
Assertions.assertEquals(ExecuteSqlType.STATISTICS, ExecuteSqlType.of(1));
Assertions.assertEquals(ExecuteSqlType.COMPARISON, ExecuteSqlType.of(2));
}
}

View File

@ -17,33 +17,32 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class InputTypeTest {
@Test
public void testGetCode() {
assertEquals(0, InputType.DEFAULT.getCode());
assertEquals(1, InputType.STATISTICS.getCode());
assertEquals(2, InputType.COMPARISON.getCode());
assertEquals(3, InputType.CHECK.getCode());
Assertions.assertEquals(0, InputType.DEFAULT.getCode());
Assertions.assertEquals(1, InputType.STATISTICS.getCode());
Assertions.assertEquals(2, InputType.COMPARISON.getCode());
Assertions.assertEquals(3, InputType.CHECK.getCode());
}
@Test
public void testGetDescription() {
assertEquals("default", InputType.DEFAULT.getDescription());
assertEquals("statistics", InputType.STATISTICS.getDescription());
assertEquals("comparison", InputType.COMPARISON.getDescription());
assertEquals("check", InputType.CHECK.getDescription());
Assertions.assertEquals("default", InputType.DEFAULT.getDescription());
Assertions.assertEquals("statistics", InputType.STATISTICS.getDescription());
Assertions.assertEquals("comparison", InputType.COMPARISON.getDescription());
Assertions.assertEquals("check", InputType.CHECK.getDescription());
}
@Test
public void testOf() {
assertEquals(InputType.DEFAULT, InputType.of(0));
assertEquals(InputType.STATISTICS, InputType.of(1));
assertEquals(InputType.COMPARISON, InputType.of(2));
assertEquals(InputType.CHECK, InputType.of(3));
Assertions.assertEquals(InputType.DEFAULT, InputType.of(0));
Assertions.assertEquals(InputType.STATISTICS, InputType.of(1));
Assertions.assertEquals(InputType.COMPARISON, InputType.of(2));
Assertions.assertEquals(InputType.CHECK, InputType.of(3));
}
}

View File

@ -17,39 +17,38 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class OperatorTypeTest {
@Test
public void testGetCode() {
assertEquals(0, OperatorType.EQ.getCode());
assertEquals(1, OperatorType.LT.getCode());
assertEquals(2, OperatorType.LE.getCode());
assertEquals(3, OperatorType.GT.getCode());
assertEquals(4, OperatorType.GE.getCode());
assertEquals(5, OperatorType.NE.getCode());
Assertions.assertEquals(0, OperatorType.EQ.getCode());
Assertions.assertEquals(1, OperatorType.LT.getCode());
Assertions.assertEquals(2, OperatorType.LE.getCode());
Assertions.assertEquals(3, OperatorType.GT.getCode());
Assertions.assertEquals(4, OperatorType.GE.getCode());
Assertions.assertEquals(5, OperatorType.NE.getCode());
}
@Test
public void testGetDescription() {
assertEquals("equal", OperatorType.EQ.getDescription());
assertEquals("little than", OperatorType.LT.getDescription());
assertEquals("little and equal", OperatorType.LE.getDescription());
assertEquals("great than", OperatorType.GT.getDescription());
assertEquals("great and equal", OperatorType.GE.getDescription());
assertEquals("not equal", OperatorType.NE.getDescription());
Assertions.assertEquals("equal", OperatorType.EQ.getDescription());
Assertions.assertEquals("little than", OperatorType.LT.getDescription());
Assertions.assertEquals("little and equal", OperatorType.LE.getDescription());
Assertions.assertEquals("great than", OperatorType.GT.getDescription());
Assertions.assertEquals("great and equal", OperatorType.GE.getDescription());
Assertions.assertEquals("not equal", OperatorType.NE.getDescription());
}
@Test
public void testOf() {
assertEquals(OperatorType.EQ, OperatorType.of(0));
assertEquals(OperatorType.LT, OperatorType.of(1));
assertEquals(OperatorType.LE, OperatorType.of(2));
assertEquals(OperatorType.GT, OperatorType.of(3));
assertEquals(OperatorType.GE, OperatorType.of(4));
assertEquals(OperatorType.NE, OperatorType.of(5));
Assertions.assertEquals(OperatorType.EQ, OperatorType.of(0));
Assertions.assertEquals(OperatorType.LT, OperatorType.of(1));
Assertions.assertEquals(OperatorType.LE, OperatorType.of(2));
Assertions.assertEquals(OperatorType.GT, OperatorType.of(3));
Assertions.assertEquals(OperatorType.GE, OperatorType.of(4));
Assertions.assertEquals(OperatorType.NE, OperatorType.of(5));
}
}

View File

@ -17,33 +17,32 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class OptionSourceTypeTest {
@Test
public void testGetCode() {
assertEquals(0, OptionSourceType.DEFAULT.getCode());
assertEquals(1, OptionSourceType.DATASOURCE_ID.getCode());
assertEquals(2, OptionSourceType.DATASOURCE_TYPE.getCode());
assertEquals(3, OptionSourceType.COMPARISON_TYPE.getCode());
Assertions.assertEquals(0, OptionSourceType.DEFAULT.getCode());
Assertions.assertEquals(1, OptionSourceType.DATASOURCE_ID.getCode());
Assertions.assertEquals(2, OptionSourceType.DATASOURCE_TYPE.getCode());
Assertions.assertEquals(3, OptionSourceType.COMPARISON_TYPE.getCode());
}
@Test
public void testGetDescription() {
assertEquals("default", OptionSourceType.DEFAULT.getDescription());
assertEquals("datasource_id", OptionSourceType.DATASOURCE_ID.getDescription());
assertEquals("datasource_type", OptionSourceType.DATASOURCE_TYPE.getDescription());
assertEquals("comparison_type", OptionSourceType.COMPARISON_TYPE.getDescription());
Assertions.assertEquals("default", OptionSourceType.DEFAULT.getDescription());
Assertions.assertEquals("datasource_id", OptionSourceType.DATASOURCE_ID.getDescription());
Assertions.assertEquals("datasource_type", OptionSourceType.DATASOURCE_TYPE.getDescription());
Assertions.assertEquals("comparison_type", OptionSourceType.COMPARISON_TYPE.getDescription());
}
@Test
public void testOf() {
assertEquals(OptionSourceType.DEFAULT, OptionSourceType.of(0));
assertEquals(OptionSourceType.DATASOURCE_ID, OptionSourceType.of(1));
assertEquals(OptionSourceType.DATASOURCE_TYPE, OptionSourceType.of(2));
assertEquals(OptionSourceType.COMPARISON_TYPE, OptionSourceType.of(3));
Assertions.assertEquals(OptionSourceType.DEFAULT, OptionSourceType.of(0));
Assertions.assertEquals(OptionSourceType.DATASOURCE_ID, OptionSourceType.of(1));
Assertions.assertEquals(OptionSourceType.DATASOURCE_TYPE, OptionSourceType.of(2));
Assertions.assertEquals(OptionSourceType.COMPARISON_TYPE, OptionSourceType.of(3));
}
}

View File

@ -17,33 +17,32 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class RuleTypeTest {
@Test
public void testGetCode() {
assertEquals(0, RuleType.SINGLE_TABLE.getCode());
assertEquals(1, RuleType.SINGLE_TABLE_CUSTOM_SQL.getCode());
assertEquals(2, RuleType.MULTI_TABLE_ACCURACY.getCode());
assertEquals(3, RuleType.MULTI_TABLE_COMPARISON.getCode());
Assertions.assertEquals(0, RuleType.SINGLE_TABLE.getCode());
Assertions.assertEquals(1, RuleType.SINGLE_TABLE_CUSTOM_SQL.getCode());
Assertions.assertEquals(2, RuleType.MULTI_TABLE_ACCURACY.getCode());
Assertions.assertEquals(3, RuleType.MULTI_TABLE_COMPARISON.getCode());
}
@Test
public void testGetDescription() {
assertEquals("single_table", RuleType.SINGLE_TABLE.getDescription());
assertEquals("single_table_custom_sql", RuleType.SINGLE_TABLE_CUSTOM_SQL.getDescription());
assertEquals("multi_table_accuracy", RuleType.MULTI_TABLE_ACCURACY.getDescription());
assertEquals("multi_table_comparison", RuleType.MULTI_TABLE_COMPARISON.getDescription());
Assertions.assertEquals("single_table", RuleType.SINGLE_TABLE.getDescription());
Assertions.assertEquals("single_table_custom_sql", RuleType.SINGLE_TABLE_CUSTOM_SQL.getDescription());
Assertions.assertEquals("multi_table_accuracy", RuleType.MULTI_TABLE_ACCURACY.getDescription());
Assertions.assertEquals("multi_table_comparison", RuleType.MULTI_TABLE_COMPARISON.getDescription());
}
@Test
public void testOf() {
assertEquals(RuleType.SINGLE_TABLE, RuleType.of(0));
assertEquals(RuleType.SINGLE_TABLE_CUSTOM_SQL, RuleType.of(1));
assertEquals(RuleType.MULTI_TABLE_ACCURACY, RuleType.of(2));
assertEquals(RuleType.MULTI_TABLE_COMPARISON, RuleType.of(3));
Assertions.assertEquals(RuleType.SINGLE_TABLE, RuleType.of(0));
Assertions.assertEquals(RuleType.SINGLE_TABLE_CUSTOM_SQL, RuleType.of(1));
Assertions.assertEquals(RuleType.MULTI_TABLE_ACCURACY, RuleType.of(2));
Assertions.assertEquals(RuleType.MULTI_TABLE_COMPARISON, RuleType.of(3));
}
}

View File

@ -17,11 +17,11 @@
package org.apache.dolphinscheduler.plugin.task.api.enums.dp;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class ValueTypeTest {
/**
* 0-string
* 1-list
@ -30,25 +30,25 @@ public class ValueTypeTest {
*/
@Test
public void testGetCode() {
assertEquals(0, ValueType.STRING.getCode());
assertEquals(1, ValueType.LIST.getCode());
assertEquals(2, ValueType.NUMBER.getCode());
assertEquals(3, ValueType.LIKE_SQL.getCode());
Assertions.assertEquals(0, ValueType.STRING.getCode());
Assertions.assertEquals(1, ValueType.LIST.getCode());
Assertions.assertEquals(2, ValueType.NUMBER.getCode());
Assertions.assertEquals(3, ValueType.LIKE_SQL.getCode());
}
@Test
public void testGetDescription() {
assertEquals("string", ValueType.STRING.getDescription());
assertEquals("list", ValueType.LIST.getDescription());
assertEquals("number", ValueType.NUMBER.getDescription());
assertEquals("sql", ValueType.LIKE_SQL.getDescription());
Assertions.assertEquals("string", ValueType.STRING.getDescription());
Assertions.assertEquals("list", ValueType.LIST.getDescription());
Assertions.assertEquals("number", ValueType.NUMBER.getDescription());
Assertions.assertEquals("sql", ValueType.LIKE_SQL.getDescription());
}
@Test
public void testOf() {
assertEquals(ValueType.STRING, ValueType.of(0));
assertEquals(ValueType.LIST, ValueType.of(1));
assertEquals(ValueType.NUMBER, ValueType.of(2));
assertEquals(ValueType.LIKE_SQL, ValueType.of(3));
Assertions.assertEquals(ValueType.STRING, ValueType.of(0));
Assertions.assertEquals(ValueType.LIST, ValueType.of(1));
Assertions.assertEquals(ValueType.NUMBER, ValueType.of(2));
Assertions.assertEquals(ValueType.LIKE_SQL, ValueType.of(3));
}
}

View File

@ -20,7 +20,6 @@ package org.apache.dolphinscheduler.plugin.task.api.k8s;
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.CLUSTER;
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.EXIT_CODE_KILL;
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.NAMESPACE_NAME;
import static org.hamcrest.Matchers.is;
import org.apache.dolphinscheduler.plugin.task.api.TaskException;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
@ -30,9 +29,9 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import io.fabric8.kubernetes.api.model.batch.v1.Job;
import io.fabric8.kubernetes.api.model.batch.v1.JobStatus;
@ -48,7 +47,7 @@ public class K8sTaskExecutorTest {
private final int taskInstanceId = 1000;
private final String taskName = "k8s_task_test";
private Job job;
@Before
@BeforeEach
public void before() {
TaskExecutionContext taskRequest = new TaskExecutionContext();
taskRequest.setTaskInstanceId(taskInstanceId);
@ -70,7 +69,7 @@ public class K8sTaskExecutorTest {
JobStatus jobStatus = new JobStatus();
jobStatus.setSucceeded(1);
job.setStatus(jobStatus);
Assert.assertEquals(0, Integer.compare(0, k8sTaskExecutor.getK8sJobStatus(job)));
Assertions.assertEquals(0, Integer.compare(0, k8sTaskExecutor.getK8sJobStatus(job)));
}
@Test
public void testSetTaskStatusNormal() {
@ -79,14 +78,14 @@ public class K8sTaskExecutorTest {
K8sTaskMainParameters k8STaskMainParameters = new K8sTaskMainParameters();
k8sTaskExecutor.setJob(job);
k8sTaskExecutor.setTaskStatus(jobStatus, String.valueOf(taskInstanceId), taskResponse, k8STaskMainParameters);
Assert.assertEquals(0, Integer.compare(EXIT_CODE_KILL, taskResponse.getExitStatusCode()));
Assertions.assertEquals(0, Integer.compare(EXIT_CODE_KILL, taskResponse.getExitStatusCode()));
}
@Test
public void testWaitTimeoutNormal() {
try {
k8sTaskExecutor.waitTimeout(true);
} catch (TaskException e) {
Assert.assertThat(e.getMessage(), is("K8sTask is timeout"));
Assertions.assertEquals(e.getMessage(), "K8sTask is timeout");
}
}
}

View File

@ -21,22 +21,22 @@ import org.apache.dolphinscheduler.plugin.task.api.loop.template.LoopTaskYamlDef
import java.io.IOException;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class HttpTaskDefinitionParserTest {
private static final String yamlFile = HttpTaskDefinitionParserTest.class.getResource("/mock_loop_task.yaml")
.getFile();
.getFile();
@Test
public void parseYamlConfigFile() throws IOException {
LoopTaskYamlDefinition loopTaskYamlDefinition = new HttpTaskDefinitionParser().parseYamlConfigFile(yamlFile);
Assert.assertNotNull(loopTaskYamlDefinition);
Assert.assertNotNull(loopTaskYamlDefinition.getService());
Assertions.assertNotNull(loopTaskYamlDefinition);
Assertions.assertNotNull(loopTaskYamlDefinition.getService());
LoopTaskYamlDefinition.LoopTaskServiceYamlDefinition service = loopTaskYamlDefinition.getService();
Assert.assertEquals("MockService", service.getName());
Assert.assertNotNull(service.getApi());
Assertions.assertEquals("MockService", service.getName());
Assertions.assertNotNull(service.getApi());
}
@Test
@ -45,7 +45,7 @@ public class HttpTaskDefinitionParserTest {
LoopTaskYamlDefinition loopTaskYamlDefinition = httpTaskDefinitionParser.parseYamlConfigFile(yamlFile);
httpTaskDefinitionParser.validateYamlDefinition(loopTaskYamlDefinition);
// if no exception assert true
Assert.assertTrue(true);
Assertions.assertTrue(true);
}
}
}

View File

@ -25,14 +25,15 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class AbstractParametersTest {
@Test
public void testGetInputLocalParametersMap() {
AbstractParameters parameters = new AbstractParameters() {
@Override
public boolean checkParameters() {
return false;
@ -47,8 +48,8 @@ public class AbstractParametersTest {
// should return property key1 and key2 (direct null and IN)
Map<String, Property> inputLocalParametersMap = parameters.getInputLocalParametersMap();
Assert.assertEquals(2, inputLocalParametersMap.size());
Assert.assertTrue(inputLocalParametersMap.containsKey("key1"));
Assert.assertTrue(inputLocalParametersMap.containsKey("key2"));
Assertions.assertEquals(2, inputLocalParametersMap.size());
Assertions.assertTrue(inputLocalParametersMap.containsKey("key1"));
Assertions.assertTrue(inputLocalParametersMap.containsKey("key2"));
}
}

View File

@ -17,8 +17,6 @@
package org.apache.dolphinscheduler.plugin.task.api.parameters;
import static org.junit.Assert.assertNotNull;
import org.apache.dolphinscheduler.plugin.task.api.enums.DataType;
import org.apache.dolphinscheduler.plugin.task.api.enums.Direct;
import org.apache.dolphinscheduler.plugin.task.api.model.Property;
@ -28,8 +26,8 @@ import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class SqlParametersTest {
@ -55,7 +53,7 @@ public class SqlParametersTest {
properties.add(property);
SqlParameters sqlParameters = new SqlParameters();
Assert.assertTrue(CollectionUtils.isEmpty(sqlParameters.getResourceFilesList()));
Assertions.assertTrue(CollectionUtils.isEmpty(sqlParameters.getResourceFilesList()));
sqlParameters.setType(type);
sqlParameters.setSql(sql);
@ -68,29 +66,29 @@ public class SqlParametersTest {
sqlParameters.setTitle(title);
sqlParameters.setGroupId(groupId);
Assert.assertEquals(type, sqlParameters.getType());
Assert.assertEquals(sql, sqlParameters.getSql());
Assert.assertEquals(udfs, sqlParameters.getUdfs());
Assert.assertEquals(datasource, sqlParameters.getDatasource());
Assert.assertEquals(sqlType, sqlParameters.getSqlType());
Assert.assertEquals(sendEmail, sqlParameters.getSendEmail());
Assert.assertEquals(displayRows, sqlParameters.getDisplayRows());
Assert.assertEquals(showType, sqlParameters.getShowType());
Assert.assertEquals(title, sqlParameters.getTitle());
Assert.assertEquals(groupId, sqlParameters.getGroupId());
Assertions.assertEquals(type, sqlParameters.getType());
Assertions.assertEquals(sql, sqlParameters.getSql());
Assertions.assertEquals(udfs, sqlParameters.getUdfs());
Assertions.assertEquals(datasource, sqlParameters.getDatasource());
Assertions.assertEquals(sqlType, sqlParameters.getSqlType());
Assertions.assertEquals(sendEmail, sqlParameters.getSendEmail());
Assertions.assertEquals(displayRows, sqlParameters.getDisplayRows());
Assertions.assertEquals(showType, sqlParameters.getShowType());
Assertions.assertEquals(title, sqlParameters.getTitle());
Assertions.assertEquals(groupId, sqlParameters.getGroupId());
String sqlResult = "[{\"id\":6,\"test1\":\"6\"},{\"id\":70002,\"test1\":\"+1\"}]";
String sqlResult1 = "[{\"id\":6,\"test1\":\"6\"}]";
sqlParameters.setLocalParams(properties);
sqlParameters.varPool = new ArrayList<>();
sqlParameters.dealOutParam(sqlResult1);
assertNotNull(sqlParameters.getVarPool().get(0));
Assertions.assertNotNull(sqlParameters.getVarPool().get(0));
property.setType(DataType.LIST);
properties.clear();
properties.add(property);
sqlParameters.setLocalParams(properties);
sqlParameters.dealOutParam(sqlResult);
assertNotNull(sqlParameters.getVarPool().get(0));
Assertions.assertNotNull(sqlParameters.getVarPool().get(0));
}
}

View File

@ -22,17 +22,19 @@ import org.apache.dolphinscheduler.plugin.task.api.parameters.SqlParameters;
import org.apache.dolphinscheduler.spi.enums.DbType;
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class AbstractResourceParametersTest {
@Test
public void testDataSource() {
TaskExecutionContext taskExecutionContext = new TaskExecutionContext();
String taskParam = "{\"localParams\":[],\"resourceList\":[],\"type\":\"MYSQL\",\"datasource\":\"1\",\"sql\":\"select now();\",\"sqlType\":\"0\",\"preStatements\":[],\"postStatements\":[],\"conditionResult\":\"null\",\"dependence\":\"null\",\"switchResult\":\"null\",\"waitStartTimeout\":null}";
String taskParam =
"{\"localParams\":[],\"resourceList\":[],\"type\":\"MYSQL\",\"datasource\":\"1\",\"sql\":\"select now();\",\"sqlType\":\"0\",\"preStatements\":[],\"postStatements\":[],\"conditionResult\":\"null\",\"dependence\":\"null\",\"switchResult\":\"null\",\"waitStartTimeout\":null}";
ResourceParametersHelper resourceParametersHelper = JSONUtils.parseObject(taskParam, SqlParameters.class).getResources();
ResourceParametersHelper resourceParametersHelper =
JSONUtils.parseObject(taskParam, SqlParameters.class).getResources();
resourceParametersHelper.getResourceMap().forEach((type, map) -> {
map.forEach((code, parameters) -> {
@ -49,8 +51,6 @@ public class AbstractResourceParametersTest {
taskExecutionContext = JSONUtils.parseObject(json, TaskExecutionContext.class);
Assert.assertNotNull(taskExecutionContext);
Assertions.assertNotNull(taskExecutionContext);
}
}

View File

@ -24,8 +24,8 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.google.common.collect.Lists;
@ -34,19 +34,22 @@ public class ParameterUtilsTest {
@Test
public void expandListParameter() {
Map<Integer, Property> params = new HashMap<>();
params.put(1, new Property(null, null, DataType.LIST, JSONUtils.toJsonString(Lists.newArrayList("c1", "c2", "c3"))));
params.put(1,
new Property(null, null, DataType.LIST, JSONUtils.toJsonString(Lists.newArrayList("c1", "c2", "c3"))));
params.put(2, new Property(null, null, DataType.DATE, "2020-06-30"));
params.put(3, new Property(null, null, DataType.LIST, JSONUtils.toJsonString(Lists.newArrayList(3.1415, 2.44, 3.44))));
String sql = ParameterUtils.expandListParameter(params, "select * from test where col1 in (?) and date=? and col2 in (?)");
Assert.assertEquals("select * from test where col1 in (?,?,?) and date=? and col2 in (?,?,?)", sql);
Assert.assertEquals(7, params.size());
params.put(3, new Property(null, null, DataType.LIST,
JSONUtils.toJsonString(Lists.newArrayList(3.1415, 2.44, 3.44))));
String sql = ParameterUtils.expandListParameter(params,
"select * from test where col1 in (?) and date=? and col2 in (?)");
Assertions.assertEquals("select * from test where col1 in (?,?,?) and date=? and col2 in (?,?,?)", sql);
Assertions.assertEquals(7, params.size());
Map<Integer, Property> params2 = new HashMap<>();
params2.put(1, new Property(null, null, DataType.LIST, JSONUtils.toJsonString(Lists.newArrayList("c1"))));
params2.put(2, new Property(null, null, DataType.DATE, "2020-06-30"));
String sql2 = ParameterUtils.expandListParameter(params2, "select * from test where col1 in (?) and date=?");
Assert.assertEquals("select * from test where col1 in (?) and date=?", sql2);
Assert.assertEquals(2, params2.size());
Assertions.assertEquals("select * from test where col1 in (?) and date=?", sql2);
Assertions.assertEquals(2, params2.size());
}
}

View File

@ -23,11 +23,11 @@ import org.apache.dolphinscheduler.spi.utils.DateUtils;
import java.util.Date;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class TimePlaceholderUtilsTest {
Date date = DateUtils.parse("2022-08-26 00:00:00", "yyyy-MM-dd HH:mm:ss");
Map<String, String> timeParams = BusinessTimeUtils.getBusinessTime(CommandType.COMPLEMENT_DATA, date);
@ -38,10 +38,10 @@ public class TimePlaceholderUtilsTest {
String thisDate = "$[this_day(yyyyMMdd)]";
String thisDayTime = ParameterUtils.convertParameterPlaceholders(thisDay, timeParams);
Assert.assertEquals(thisDayTime, "2022-08-26");
Assertions.assertEquals(thisDayTime, "2022-08-26");
String thisDateTime = ParameterUtils.convertParameterPlaceholders(thisDate, timeParams);
Assert.assertEquals(thisDateTime, "20220826");
Assertions.assertEquals(thisDateTime, "20220826");
}
@Test
@ -49,10 +49,10 @@ public class TimePlaceholderUtilsTest {
String lastDay = "$[last_day(yyyy-MM-dd)]";
String lastDate = "$[last_day(yyyyMMdd)]";
String lastDayTime = ParameterUtils.convertParameterPlaceholders(lastDay, timeParams);
Assert.assertEquals(lastDayTime, "2022-08-25");
Assertions.assertEquals(lastDayTime, "2022-08-25");
String lastDateTime = ParameterUtils.convertParameterPlaceholders(lastDate, timeParams);
Assert.assertEquals(lastDateTime, "20220825");
Assertions.assertEquals(lastDateTime, "20220825");
}
@Test
@ -62,20 +62,20 @@ public class TimePlaceholderUtilsTest {
String yearWeekDay = "$[year_week(yyyyMMdd)]";
String yearWeekDateTime = ParameterUtils.convertParameterPlaceholders(yearWeekDate, timeParams);
Assert.assertEquals(yearWeekDateTime, "2022-34");
Assertions.assertEquals(yearWeekDateTime, "2022-34");
String yearWeekDayTime = ParameterUtils.convertParameterPlaceholders(yearWeekDay, timeParams);
Assert.assertEquals(yearWeekDayTime, "202234");
Assertions.assertEquals(yearWeekDayTime, "202234");
// Start the week on Friday
String yearWeekDateAny = "$[year_week(yyyy-MM-dd,5)]";
String yearWeekDayAny = "$[year_week(yyyyMMdd,5)]";
String yearWeekDateAnyTime = ParameterUtils.convertParameterPlaceholders(yearWeekDateAny, timeParams);
Assert.assertEquals(yearWeekDateAnyTime, "2022-35");
Assertions.assertEquals(yearWeekDateAnyTime, "2022-35");
String yearWeekDayAnyTime = ParameterUtils.convertParameterPlaceholders(yearWeekDayAny, timeParams);
Assert.assertEquals(yearWeekDayAnyTime, "202235");
Assertions.assertEquals(yearWeekDayAnyTime, "202235");
}
@Test
@ -84,10 +84,10 @@ public class TimePlaceholderUtilsTest {
String monthFirstDay = "$[month_first_day(yyyyMMdd,-1)]";
String monthFirstDateTime = ParameterUtils.convertParameterPlaceholders(monthFirstDate, timeParams);
Assert.assertEquals(monthFirstDateTime, "2022-07-01");
Assertions.assertEquals(monthFirstDateTime, "2022-07-01");
String monthFirstDayTime = ParameterUtils.convertParameterPlaceholders(monthFirstDay, timeParams);
Assert.assertEquals(monthFirstDayTime, "20220701");
Assertions.assertEquals(monthFirstDayTime, "20220701");
}
@Test
@ -96,10 +96,10 @@ public class TimePlaceholderUtilsTest {
String monthLastDay = "$[month_last_day(yyyyMMdd,-1)]";
String monthLastDateTime = ParameterUtils.convertParameterPlaceholders(monthLastDate, timeParams);
Assert.assertEquals(monthLastDateTime, "2022-07-31");
Assertions.assertEquals(monthLastDateTime, "2022-07-31");
String monthLastDayTime = ParameterUtils.convertParameterPlaceholders(monthLastDay, timeParams);
Assert.assertEquals(monthLastDayTime, "20220731");
Assertions.assertEquals(monthLastDayTime, "20220731");
}
@Test
@ -108,10 +108,10 @@ public class TimePlaceholderUtilsTest {
String weekFirstDay = "$[week_first_day(yyyyMMdd,0)]";
String weekFirstDateTime = ParameterUtils.convertParameterPlaceholders(weekFirstDate, timeParams);
Assert.assertEquals(weekFirstDateTime, "2022-08-22");
Assertions.assertEquals(weekFirstDateTime, "2022-08-22");
String weekFirstDayTime = ParameterUtils.convertParameterPlaceholders(weekFirstDay, timeParams);
Assert.assertEquals(weekFirstDayTime, "20220822");
Assertions.assertEquals(weekFirstDayTime, "20220822");
}
@Test
@ -120,9 +120,9 @@ public class TimePlaceholderUtilsTest {
String weekLastDay = "$[week_last_day(yyyyMMdd,0)]";
String weekLastDateTime = ParameterUtils.convertParameterPlaceholders(weekLastDate, timeParams);
Assert.assertEquals(weekLastDateTime,"2022-08-28");
Assertions.assertEquals(weekLastDateTime, "2022-08-28");
String weekLastDayTime = ParameterUtils.convertParameterPlaceholders(weekLastDay, timeParams);
Assert.assertEquals(weekLastDayTime,"20220828");
Assertions.assertEquals(weekLastDayTime, "20220828");
}
}

View File

@ -26,85 +26,86 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
public class DependentUtilsTest {
private static final Logger logger = LoggerFactory.getLogger(DependentUtilsTest.class);
@Test
public void getDependResultForRelation() {
//failed
// failed
DependentRelation dependentRelation = DependentRelation.AND;
List<DependResult> dependResultList = new ArrayList<>();
dependResultList.add(DependResult.FAILED);
dependResultList.add(DependResult.SUCCESS);
DependResult result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.FAILED);
Assertions.assertEquals(result, DependResult.FAILED);
//waiting
// waiting
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.WAITING);
dependResultList.add(DependResult.SUCCESS);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.WAITING);
Assertions.assertEquals(result, DependResult.WAITING);
//success
// success
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.SUCCESS);
dependResultList.add(DependResult.SUCCESS);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.SUCCESS);
Assertions.assertEquals(result, DependResult.SUCCESS);
//one success
// one success
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.SUCCESS);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.SUCCESS);
Assertions.assertEquals(result, DependResult.SUCCESS);
//one failed
// one failed
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.FAILED);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.FAILED);
Assertions.assertEquals(result, DependResult.FAILED);
//or success
// or success
dependentRelation = DependentRelation.OR;
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.FAILED);
dependResultList.add(DependResult.SUCCESS);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.SUCCESS);
Assertions.assertEquals(result, DependResult.SUCCESS);
//waiting
// waiting
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.WAITING);
dependResultList.add(DependResult.FAILED);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.WAITING);
Assertions.assertEquals(result, DependResult.WAITING);
//success
// success
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.SUCCESS);
dependResultList.add(DependResult.SUCCESS);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.SUCCESS);
Assertions.assertEquals(result, DependResult.SUCCESS);
//one success
// one success
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.SUCCESS);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.SUCCESS);
Assertions.assertEquals(result, DependResult.SUCCESS);
//one failed
// one failed
dependResultList = new ArrayList<>();
dependResultList.add(DependResult.FAILED);
result = DependentUtils.getDependResultForRelation(dependentRelation, dependResultList);
Assert.assertEquals(result, DependResult.FAILED);
Assertions.assertEquals(result, DependResult.FAILED);
}
@Test
@ -123,7 +124,7 @@ public class DependentUtilsTest {
DateUtils.getEndOfDay(day2));
String dateValue = "last1Days";
List<DateInterval> dateIntervals = DependentUtils.getDateIntervalList(curDay, dateValue);
Assert.assertEquals(dateIntervals.get(0), di1);
Assertions.assertEquals(dateIntervals.get(0), di1);
dateValue = "last2Days";
dateIntervals = DependentUtils.getDateIntervalList(curDay, dateValue);
@ -131,142 +132,144 @@ public class DependentUtilsTest {
logger.info(dateInterval.getStartTime().toString() + " == " + dateInterval.getEndTime().toString());
}
Assert.assertEquals(dateIntervals.get(1), di1);
Assert.assertEquals(dateIntervals.get(0), di2);
Assertions.assertEquals(dateIntervals.get(1), di1);
Assertions.assertEquals(dateIntervals.get(0), di2);
dateValue = "today";
dateIntervals = DependentUtils.getDateIntervalList(curDay, dateValue);
Assert.assertEquals(dateIntervals.get(0), diCur);
Assertions.assertEquals(dateIntervals.get(0), diCur);
dateValue = "thisWeek";
Date firstWeekDay = DateUtils.getMonday(curDay);
dateIntervals = DependentUtils.getDateIntervalList(curDay, dateValue);
DateInterval weekHead = new DateInterval(DateUtils.getStartOfDay(firstWeekDay), DateUtils.getEndOfDay(firstWeekDay));
DateInterval weekHead =
new DateInterval(DateUtils.getStartOfDay(firstWeekDay), DateUtils.getEndOfDay(firstWeekDay));
DateInterval weekThis = new DateInterval(DateUtils.getStartOfDay(curDay), DateUtils.getEndOfDay(curDay));
Assert.assertEquals(dateIntervals.get(0), weekHead);
Assert.assertEquals(dateIntervals.get(dateIntervals.size() - 1), weekThis);
Assertions.assertEquals(dateIntervals.get(0), weekHead);
Assertions.assertEquals(dateIntervals.get(dateIntervals.size() - 1), weekThis);
dateValue = "thisMonth";
Date firstMonthDay = DateUtils.getFirstDayOfMonth(curDay);
dateIntervals = DependentUtils.getDateIntervalList(curDay, dateValue);
DateInterval monthHead = new DateInterval(DateUtils.getStartOfDay(firstMonthDay), DateUtils.getEndOfDay(firstMonthDay));
DateInterval monthHead =
new DateInterval(DateUtils.getStartOfDay(firstMonthDay), DateUtils.getEndOfDay(firstMonthDay));
DateInterval monthThis = new DateInterval(DateUtils.getStartOfDay(curDay), DateUtils.getEndOfDay(curDay));
Assert.assertEquals(dateIntervals.get(0), monthHead);
Assert.assertEquals(dateIntervals.get(dateIntervals.size() - 1), monthThis);
Assertions.assertEquals(dateIntervals.get(0), monthHead);
Assertions.assertEquals(dateIntervals.get(dateIntervals.size() - 1), monthThis);
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-04 10:00:00"), "last1Hour");
DateInterval expect = new DateInterval(DateUtils.stringToDate("2019-02-04 09:00:00"),
DateUtils.getEndOfHour(DateUtils.stringToDate("2019-02-04 09:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(expect, dateIntervals.get(0));
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-04 10:00:00"), "last2Hours");
expect = new DateInterval(DateUtils.stringToDate("2019-02-04 08:00:00"),
DateUtils.getEndOfHour(DateUtils.stringToDate("2019-02-04 08:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(expect, dateIntervals.get(0));
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-04 10:00:00"), "last3Hours");
expect = new DateInterval(DateUtils.stringToDate("2019-02-04 07:00:00"),
DateUtils.getEndOfHour(DateUtils.stringToDate("2019-02-04 07:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(expect, dateIntervals.get(0));
dateValue = "last3Days";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-02-07 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-02-07 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(expect, dateIntervals.get(0));
dateValue = "last7Days";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-02-03 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-02-03 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(expect, dateIntervals.get(0));
dateValue = "lastWeek";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-28 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-28 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(expect, dateIntervals.get(0));
expect = new DateInterval(DateUtils.stringToDate("2019-02-03 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-02-03 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(6));
Assert.assertEquals(7, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(6));
Assertions.assertEquals(7, dateIntervals.size());
dateValue = "lastMonday";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-28 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-28 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastTuesday";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-29 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-29 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastWednesday";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-30 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-30 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastThursday";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-31 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-31 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastFriday";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-02-01 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-02-01 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastSaturday";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-02-02 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-02-02 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastSunday";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-02-03 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-02-03 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastMonth";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-01 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-01 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(expect, dateIntervals.get(0));
expect = new DateInterval(DateUtils.stringToDate("2019-01-31 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-31 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(30));
Assert.assertEquals(31, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(30));
Assertions.assertEquals(31, dateIntervals.size());
dateValue = "lastMonthBegin";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-01 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-01 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
dateValue = "lastMonthEnd";
dateIntervals = DependentUtils.getDateIntervalList(DateUtils.stringToDate("2019-02-10 07:00:00"), dateValue);
expect = new DateInterval(DateUtils.stringToDate("2019-01-31 00:00:00"),
DateUtils.getEndOfDay(DateUtils.stringToDate("2019-01-31 00:00:00")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
}
@Test
@ -295,27 +298,27 @@ public class DependentUtilsTest {
Date day7 = DateUtils.stringToDate("2019-02-03 00:00:00");
DateInterval di7 = new DateInterval(DateUtils.getStartOfDay(day7),
DateUtils.getEndOfDay(day7));
List<DateInterval> dateIntervals = DependentDateUtils.getLastWeekInterval(curDay);
Assert.assertEquals(dateIntervals.size(), 7);
Assert.assertEquals(dateIntervals.get(0), di1);
Assert.assertEquals(dateIntervals.get(1), di2);
Assert.assertEquals(dateIntervals.get(2), di3);
Assert.assertEquals(dateIntervals.get(3), di4);
List<DateInterval> dateIntervals = DependentDateUtils.getLastWeekInterval(curDay);
Assertions.assertEquals(dateIntervals.size(), 7);
Assertions.assertEquals(dateIntervals.get(0), di1);
Assertions.assertEquals(dateIntervals.get(1), di2);
Assertions.assertEquals(dateIntervals.get(2), di3);
Assertions.assertEquals(dateIntervals.get(3), di4);
List<DateInterval> monday = DependentDateUtils.getLastWeekOneDayInterval(curDay, 1);
Assert.assertEquals(monday.get(0), di1);
Assertions.assertEquals(monday.get(0), di1);
List<DateInterval> tuesday = DependentDateUtils.getLastWeekOneDayInterval(curDay, 2);
Assert.assertEquals(tuesday.get(0), di2);
Assertions.assertEquals(tuesday.get(0), di2);
List<DateInterval> wednesday = DependentDateUtils.getLastWeekOneDayInterval(curDay, 3);
Assert.assertEquals(wednesday.get(0), di3);
Assertions.assertEquals(wednesday.get(0), di3);
List<DateInterval> thursday = DependentDateUtils.getLastWeekOneDayInterval(curDay, 4);
Assert.assertEquals(thursday.get(0), di4);
Assertions.assertEquals(thursday.get(0), di4);
List<DateInterval> friday = DependentDateUtils.getLastWeekOneDayInterval(curDay, 5);
Assert.assertEquals(friday.get(0), di5);
Assertions.assertEquals(friday.get(0), di5);
List<DateInterval> saturday = DependentDateUtils.getLastWeekOneDayInterval(curDay, 6);
Assert.assertEquals(saturday.get(0), di6);
Assertions.assertEquals(saturday.get(0), di6);
List<DateInterval> sunday = DependentDateUtils.getLastWeekOneDayInterval(curDay, 7);
Assert.assertEquals(sunday.get(0), di7);
Assertions.assertEquals(sunday.get(0), di7);
}
@Test
@ -333,14 +336,14 @@ public class DependentUtilsTest {
DateUtils.getEndOfHour(day3));
List<DateInterval> dateIntervals = DependentDateUtils.getLastHoursInterval(curDay, 1);
Assert.assertEquals(dateIntervals.get(0), di1);
Assertions.assertEquals(dateIntervals.get(0), di1);
dateIntervals = DependentDateUtils.getLastHoursInterval(curDay, 2);
Assert.assertEquals(dateIntervals.get(1), di1);
Assert.assertEquals(dateIntervals.get(0), di2);
Assertions.assertEquals(dateIntervals.get(1), di1);
Assertions.assertEquals(dateIntervals.get(0), di2);
dateIntervals = DependentDateUtils.getLastHoursInterval(curDay, 3);
Assert.assertEquals(dateIntervals.get(2), di1);
Assert.assertEquals(dateIntervals.get(1), di2);
Assert.assertEquals(dateIntervals.get(0), di3);
Assertions.assertEquals(dateIntervals.get(2), di1);
Assertions.assertEquals(dateIntervals.get(1), di2);
Assertions.assertEquals(dateIntervals.get(0), di3);
}
@ -350,12 +353,13 @@ public class DependentUtilsTest {
Date curDay = DateUtils.stringToDate("2020-05-15 12:10:00");
List<DateInterval> dateIntervals = DependentUtils.getDateIntervalList(curDay, dateValue);
List<DateInterval> dateIntervals = DependentUtils.getDateIntervalList(curDay, dateValue);
DateInterval expect = new DateInterval(DateUtils.getStartOfHour(DateUtils.stringToDate("2020-05-15 12:00:00")), DateUtils.getEndOfHour(DateUtils.stringToDate("2020-05-15 12:59:59")));
DateInterval expect = new DateInterval(DateUtils.getStartOfHour(DateUtils.stringToDate("2020-05-15 12:00:00")),
DateUtils.getEndOfHour(DateUtils.stringToDate("2020-05-15 12:59:59")));
Assert.assertEquals(expect, dateIntervals.get(0));
Assert.assertEquals(1, dateIntervals.size());
Assertions.assertEquals(expect, dateIntervals.get(0));
Assertions.assertEquals(1, dateIntervals.size());
}
@Test
@ -371,17 +375,20 @@ public class DependentUtilsTest {
if (a < 10) {
i = "0" + i;
}
DateInterval dateInterval = new DateInterval(DateUtils.getStartOfHour(DateUtils.stringToDate("2020-05-14 " + i + ":00:00")),
DateUtils.getEndOfHour(DateUtils.stringToDate("2020-05-14 " + i + ":59:59")));
DateInterval dateInterval =
new DateInterval(DateUtils.getStartOfHour(DateUtils.stringToDate("2020-05-14 " + i + ":00:00")),
DateUtils.getEndOfHour(DateUtils.stringToDate("2020-05-14 " + i + ":59:59")));
expect.add(dateInterval);
}
DateInterval dateInterval = new DateInterval(DateUtils.getStartOfHour(DateUtils.stringToDate("2020-05-15 00:00:00")), DateUtils.getEndOfHour(DateUtils.stringToDate("2020-05-15 00:59:59")));
DateInterval dateInterval =
new DateInterval(DateUtils.getStartOfHour(DateUtils.stringToDate("2020-05-15 00:00:00")),
DateUtils.getEndOfHour(DateUtils.stringToDate("2020-05-15 00:59:59")));
expect.add(dateInterval);
Assert.assertEquals(24, dateIntervals.size());
Assertions.assertEquals(24, dateIntervals.size());
for (int i = 0; i < expect.size(); i++) {
Assert.assertEquals(expect.get(i), dateIntervals.get(i));
Assertions.assertEquals(expect.get(i), dateIntervals.get(i));
}
}
@ -398,9 +405,9 @@ public class DependentUtilsTest {
List<DateInterval> dateIntervals = DependentDateUtils.getLastMonthInterval(curDay);
Assert.assertEquals(dateIntervals.size(), 31);
Assert.assertEquals(dateIntervals.get(0), di1);
Assert.assertEquals(dateIntervals.get(30), di2);
Assertions.assertEquals(dateIntervals.size(), 31);
Assertions.assertEquals(dateIntervals.get(0), di1);
Assertions.assertEquals(dateIntervals.get(30), di2);
}
}

View File

@ -19,8 +19,8 @@ package org.apache.dolphinscheduler.plugin.task.api.utils;
import org.apache.dolphinscheduler.plugin.task.api.model.JdbcInfo;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
/**
* JdbcUrlParserTest
@ -38,7 +38,7 @@ public class JdbcUrlParserTest {
+ "driverName='mysql', database='dolphinscheduler', "
+ "params='useUnicode=true&characterEncoding=UTF-8', "
+ "address='jdbc:mysql://localhost:3306'}";
Assert.assertEquals(expected,jdbcInfoStr);
Assertions.assertEquals(expected, jdbcInfoStr);
}
}
}

View File

@ -19,8 +19,8 @@ package org.apache.dolphinscheduler.plugin.task.api.utils;
import java.util.Optional;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class JsonPathUtilsTest {
@ -28,13 +28,13 @@ public class JsonPathUtilsTest {
public void read() {
String json = "{\"taskInstanceId\":\"123\",\"taskInstanceFinished\":true}";
Optional<Boolean> optionalBoolean = JsonPathUtils.read(json, "$.taskInstanceFinished");
Assert.assertTrue(optionalBoolean.get());
Assertions.assertTrue(optionalBoolean.get());
}
@Test
public void exist() {
String json = "{\"taskInstanceId\":\"123\",\"taskInstanceFinished\":true}";
Assert.assertTrue(JsonPathUtils.exist(json, "$.[?(@.taskInstanceFinished == true)]"));
Assert.assertFalse(JsonPathUtils.exist(json, "$.[?(@.taskInstanceFinished == false)]"));
Assertions.assertTrue(JsonPathUtils.exist(json, "$.[?(@.taskInstanceFinished == true)]"));
Assertions.assertFalse(JsonPathUtils.exist(json, "$.[?(@.taskInstanceFinished == false)]"));
}
}
}

View File

@ -19,8 +19,8 @@ package org.apache.dolphinscheduler.plugin.task.api.utils;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.google.common.collect.Lists;
@ -32,6 +32,6 @@ public class LogUtilsTest {
@Test
public void getAppIdsFromLogFile() {
List<String> appIds = LogUtils.getAppIdsFromLogFile(APP_ID_FILE);
Assert.assertEquals(Lists.newArrayList("application_1548381669007_1234"), appIds);
Assertions.assertEquals(Lists.newArrayList("application_1548381669007_1234"), appIds);
}
}

View File

@ -19,21 +19,24 @@ package org.apache.dolphinscheduler.plugin.task.api.utils;
import java.util.function.Supplier;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class RetryUtilsTest {
@Test(expected = RuntimeException.class)
@Test
public void retryFunction() {
Boolean retrySuccess = RetryUtils.retryFunction(() -> true);
Assert.assertTrue(retrySuccess);
Assertions.assertTrue(retrySuccess);
RetryUtils.retryFunction((Supplier<Boolean>) () -> {
throw new RuntimeException("Test failed function");
Assertions.assertThrows(RuntimeException.class, () -> {
RetryUtils.retryFunction((Supplier<Boolean>) () -> {
throw new RuntimeException("Test failed function");
});
// make sure RuntimeException thrown
Assertions.fail();
});
// should throw runtime exception
Assert.fail();
}
}

View File

@ -17,9 +17,9 @@
package org.apache.dolphinscheduler.plugin.task.chunjun;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class ChunJunConstantsTest {
@ -29,7 +29,7 @@ public class ChunJunConstantsTest {
private String hadoopConfDir;
@Before
@BeforeEach
public void setUp() {
flinkConfDir = "${FLINK_HOME}/conf";
flinkLibDir = "${FLINK_HOME}/lib";
@ -38,9 +38,9 @@ public class ChunJunConstantsTest {
@Test
public void testEqualsString() {
Assert.assertEquals(ChunJunConstants.FLINK_CONF_DIR, flinkConfDir);
Assert.assertEquals(ChunJunConstants.FLINK_LIB_DIR, flinkLibDir);
Assert.assertEquals(ChunJunConstants.HADOOP_CONF_DIR, hadoopConfDir);
Assertions.assertEquals(ChunJunConstants.FLINK_CONF_DIR, flinkConfDir);
Assertions.assertEquals(ChunJunConstants.FLINK_LIB_DIR, flinkLibDir);
Assertions.assertEquals(ChunJunConstants.HADOOP_CONF_DIR, hadoopConfDir);
}
}

View File

@ -17,15 +17,15 @@
package org.apache.dolphinscheduler.plugin.task.chunjun;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class ChunJunParametersTest {
private ChunJunParameters chunJunParameters = new ChunJunParameters();
@Before
@BeforeEach
public void setUp() {
chunJunParameters.setCustomConfig(0);
chunJunParameters.setDataSource(1);
@ -41,38 +41,38 @@ public class ChunJunParametersTest {
public void testToString() {
String expected = "ChunJunParameters"
+ "{"
+ "customConfig=0, "
+ "json='json', "
+ "dsType='MYSQL', "
+ "dataSource=1, "
+ "dtType='MYSQL', "
+ "dataTarget=1, "
+ "sql='null', "
+ "targetTable='null', "
+ "preStatements=null, "
+ "postStatements=null, "
+ "jobSpeedByte=1, "
+ "jobSpeedRecord=1, "
+ "others=xx, "
+ "deployMode=local"
+ "}";
+ "{"
+ "customConfig=0, "
+ "json='json', "
+ "dsType='MYSQL', "
+ "dataSource=1, "
+ "dtType='MYSQL', "
+ "dataTarget=1, "
+ "sql='null', "
+ "targetTable='null', "
+ "preStatements=null, "
+ "postStatements=null, "
+ "jobSpeedByte=1, "
+ "jobSpeedRecord=1, "
+ "others=xx, "
+ "deployMode=local"
+ "}";
Assert.assertNotEquals(expected, chunJunParameters.toString());
Assertions.assertNotEquals(expected, chunJunParameters.toString());
}
@Test
public void testCheckParameters() {
Assert.assertFalse(chunJunParameters.checkParameters());
Assertions.assertFalse(chunJunParameters.checkParameters());
}
@Test
public void testGetResourceFilesList() {
Assert.assertNotNull(chunJunParameters.getResourceFilesList());
Assertions.assertNotNull(chunJunParameters.getResourceFilesList());
}
@Test
public void testGetResources() {
Assert.assertNotNull(chunJunParameters.getResources());
Assertions.assertNotNull(chunJunParameters.getResources());
}
}

View File

@ -33,9 +33,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
@ -48,7 +48,7 @@ public class DataQualityParameterTest {
private DataQualityParameters dataQualityParameters = null;
@Before
@BeforeEach
public void before() {
dataQualityParameters = new DataQualityParameters();
dataQualityParameters.setRuleId(1);
@ -58,24 +58,24 @@ public class DataQualityParameterTest {
@Test
public void testCheckParameterNormal() {
Map<String,String> inputParameterValue = new HashMap<>();
inputParameterValue.put("src_connector_type","JDBC");
inputParameterValue.put("src_datasource_id","1");
inputParameterValue.put("src_table","test1");
inputParameterValue.put("src_filter","date=2012-10-05");
inputParameterValue.put("src_field","id");
Map<String, String> inputParameterValue = new HashMap<>();
inputParameterValue.put("src_connector_type", "JDBC");
inputParameterValue.put("src_datasource_id", "1");
inputParameterValue.put("src_table", "test1");
inputParameterValue.put("src_filter", "date=2012-10-05");
inputParameterValue.put("src_field", "id");
inputParameterValue.put("rule_type","1");
inputParameterValue.put("process_definition_id","1");
inputParameterValue.put("task_instance_id","1");
inputParameterValue.put("check_type","1");
inputParameterValue.put("threshold","1000");
inputParameterValue.put("create_time","2012-10-05");
inputParameterValue.put("update_time","2012-10-05");
inputParameterValue.put("rule_type", "1");
inputParameterValue.put("process_definition_id", "1");
inputParameterValue.put("task_instance_id", "1");
inputParameterValue.put("check_type", "1");
inputParameterValue.put("threshold", "1000");
inputParameterValue.put("create_time", "2012-10-05");
inputParameterValue.put("update_time", "2012-10-05");
dataQualityParameters.setRuleInputParameter(inputParameterValue);
Assert.assertTrue(dataQualityParameters.checkParameters());
Assertions.assertTrue(dataQualityParameters.checkParameters());
}
@Test
@ -96,10 +96,10 @@ public class DataQualityParameterTest {
selectParamProps.setDisabled(false);
selectParamProps.setSize("small");
SelectParam srcConnectorType = SelectParam.newBuilder("src_connector_type","源数据类型")
SelectParam srcConnectorType = SelectParam.newBuilder("src_connector_type", "源数据类型")
.setProps(selectParamProps)
.addOptions(new ParamsOptions("HIVE","HIVE",false))
.addOptions(new ParamsOptions("JDBC","JDBC",false))
.addOptions(new ParamsOptions("HIVE", "HIVE", false))
.addOptions(new ParamsOptions("JDBC", "JDBC", false))
.setValue("JDBC")
.build();
@ -109,9 +109,10 @@ public class DataQualityParameterTest {
inputParamProps.setSize("small");
inputParamProps.setRows(0);
InputParam srcTable = InputParam.newBuilder("src_table","源数据表")
InputParam srcTable = InputParam.newBuilder("src_table", "源数据表")
.setProps(inputParamProps)
.addValidate(Validate.newBuilder().setType("string").setRequired(true).setTrigger(TriggerType.BLUR.getTriggerType()).build())
.addValidate(Validate.newBuilder().setType("string").setRequired(true)
.setTrigger(TriggerType.BLUR.getTriggerType()).build())
.build();
pluginParamsList.add(srcConnectorType);
@ -124,9 +125,9 @@ public class DataQualityParameterTest {
try {
result = mapper.writeValueAsString(pluginParamsList);
} catch (JsonProcessingException e) {
Assert.fail();
Assertions.fail();
}
Assert.assertEquals(formCreateJson,result);
Assertions.assertEquals(formCreateJson, result);
}
}

View File

@ -38,8 +38,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
/**
* DataQualityTaskTest
@ -96,7 +96,7 @@ public class DataQualityTaskTest {
+ "as unique_code,'table_count.total'AS statistics_name,"
+ "table_count.total AS statistics_value,'2021-08-12 10:15:48' as data_time,'2021-08-12 10:15:48' as create_time,"
+ "'2021-08-12 10:15:48' as update_time from table_count\"}}]}";
Assert.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
Assertions.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
}
private DataQualityTaskExecutionContext getSingleTableContext() {
@ -540,7 +540,7 @@ public class DataQualityTaskTest {
+ "'2021-08-30 00:00:00' as data_time,'2021-08-30 00:00:00' as create_time,'2021-08-30 00:00:00' "
+ "as update_time from test_person\"}}]}";
Assert.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
Assertions.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
}
@Test
@ -819,7 +819,7 @@ public class DataQualityTaskTest {
+ "where c1>20 ) tmp2\"}}]}";
RuleManager ruleManager = new RuleManager(inputParameterValue, dataQualityTaskExecutionContext);
Assert.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
Assertions.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
}
@Test
@ -1171,6 +1171,6 @@ public class DataQualityTaskTest {
+ "\"config\":{\"path\":\"hdfs://localhost:8022/user/ods/data_quality_error_data/1_1_test\",\"input_table\":\"miss_items\"}}]}";
RuleManager ruleManager = new RuleManager(inputParameterValue, dataQualityTaskExecutionContext);
Assert.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
Assertions.assertEquals(expect, JSONUtils.toJsonString(ruleManager.generateDataQualityParameter()));
}
}

View File

@ -17,14 +17,13 @@
package org.apache.dolphinscheduler.plugin.task.dq.utils;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class Md5UtilsTest {
@Test
public void testGetMd5() {
assertEquals("jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", Md5Utils.getMd5("123456", false));
Assertions.assertEquals("jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", Md5Utils.getMd5("123456", false));
}
}

View File

@ -38,16 +38,16 @@ import software.amazon.awssdk.services.datasync.model.StartTaskExecutionResponse
import software.amazon.awssdk.services.datasync.model.TaskExecutionStatus;
import software.amazon.awssdk.services.datasync.model.TaskStatus;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class DatasyncTaskTest {
private static final String mockExeArn =
@ -63,7 +63,7 @@ public class DatasyncTaskTest {
@Mock
DataSyncClient client;
MockedStatic<DatasyncHook> datasyncHookMockedStatic;
@Before
@BeforeEach
public void before() throws IllegalAccessException {
client = mock(DataSyncClient.class);
datasyncHookMockedStatic = mockStatic(DatasyncHook.class);
@ -129,22 +129,22 @@ public class DatasyncTaskTest {
DatasyncTask DatasyncTask = initTask(DatasyncParameters);
DatasyncParameters datasyncParameters = DatasyncTask.getParameters();
Assert.assertEquals("arn:aws:logs:ap-northeast-3:523202806641:log-group:/aws/datasync:*",
Assertions.assertEquals("arn:aws:logs:ap-northeast-3:523202806641:log-group:/aws/datasync:*",
datasyncParameters.getCloudWatchLogGroupArn());
Assert.assertEquals("task001", datasyncParameters.getName());
Assert.assertEquals("arn:aws:datasync:ap-northeast-3:523202806641:location/loc-04ceafb4aaf7a1a0d",
Assertions.assertEquals("task001", datasyncParameters.getName());
Assertions.assertEquals("arn:aws:datasync:ap-northeast-3:523202806641:location/loc-04ceafb4aaf7a1a0d",
datasyncParameters.getSourceLocationArn());
Assert.assertEquals("arn:aws:datasync:ap-northeast-3:523202806641:location/loc-01cf61e102e58e365",
Assertions.assertEquals("arn:aws:datasync:ap-northeast-3:523202806641:location/loc-01cf61e102e58e365",
datasyncParameters.getDestinationLocationArn());
Assert.assertEquals("inType1", datasyncParameters.getIncludes().get(0).getFilterType());
Assert.assertEquals("inValue1", datasyncParameters.getIncludes().get(0).getValue());
Assert.assertEquals("exType1", datasyncParameters.getExcludes().get(0).getFilterType());
Assert.assertEquals("exValue1", datasyncParameters.getExcludes().get(0).getValue());
Assert.assertEquals("tagKey1", datasyncParameters.getTags().get(0).getKey());
Assert.assertEquals("tagValue1", datasyncParameters.getTags().get(0).getValue());
Assert.assertEquals("* * * * * ?", datasyncParameters.getSchedule().getScheduleExpression());
Assert.assertEquals("aTime", datasyncParameters.getOptions().getAtime());
Assert.assertEquals(Long.valueOf(10), datasyncParameters.getOptions().getBytesPerSecond());
Assertions.assertEquals("inType1", datasyncParameters.getIncludes().get(0).getFilterType());
Assertions.assertEquals("inValue1", datasyncParameters.getIncludes().get(0).getValue());
Assertions.assertEquals("exType1", datasyncParameters.getExcludes().get(0).getFilterType());
Assertions.assertEquals("exValue1", datasyncParameters.getExcludes().get(0).getValue());
Assertions.assertEquals("tagKey1", datasyncParameters.getTags().get(0).getKey());
Assertions.assertEquals("tagValue1", datasyncParameters.getTags().get(0).getValue());
Assertions.assertEquals("* * * * * ?", datasyncParameters.getSchedule().getScheduleExpression());
Assertions.assertEquals("aTime", datasyncParameters.getOptions().getAtime());
Assertions.assertEquals(Long.valueOf(10), datasyncParameters.getOptions().getBytesPerSecond());
datasyncHookMockedStatic.close();
}
@ -160,7 +160,7 @@ public class DatasyncTaskTest {
doReturn(true).when(hook).doubleCheckTaskStatus(any(), any());
hook.createDatasyncTask(datasyncTask.getParameters());
Assert.assertEquals(mockTaskArn, hook.getTaskArn());
Assertions.assertEquals(mockTaskArn, hook.getTaskArn());
datasyncHookMockedStatic.close();
}
@ -175,7 +175,7 @@ public class DatasyncTaskTest {
when(response.taskExecutionArn()).thenReturn(mockExeArn);
doReturn(true).when(hook).doubleCheckExecStatus(any(), any());
hook.startDatasyncTask();
Assert.assertEquals(mockExeArn, hook.getTaskExecArn());
Assertions.assertEquals(mockExeArn, hook.getTaskExecArn());
datasyncHookMockedStatic.close();
}
@ -187,7 +187,7 @@ public class DatasyncTaskTest {
SdkHttpResponse sdkMock = mock(SdkHttpResponse.class);
when(response.sdkHttpResponse()).thenReturn(sdkMock);
when(sdkMock.isSuccessful()).thenReturn(true);
Assert.assertEquals(true, hook.cancelDatasyncTask());
Assertions.assertEquals(true, hook.cancelDatasyncTask());
datasyncHookMockedStatic.close();
}
@ -195,10 +195,10 @@ public class DatasyncTaskTest {
public void testDescribeTask() {
DatasyncHook hook = spy(new DatasyncHook());
doReturn(null).when(hook).queryDatasyncTaskStatus();
Assert.assertEquals(false, hook.doubleCheckTaskStatus(TaskStatus.AVAILABLE, DatasyncHook.taskFinishFlags));
Assertions.assertEquals(false, hook.doubleCheckTaskStatus(TaskStatus.AVAILABLE, DatasyncHook.taskFinishFlags));
doReturn(TaskStatus.AVAILABLE).when(hook).queryDatasyncTaskStatus();
Assert.assertEquals(true, hook.doubleCheckTaskStatus(TaskStatus.AVAILABLE, DatasyncHook.taskFinishFlags));
Assertions.assertEquals(true, hook.doubleCheckTaskStatus(TaskStatus.AVAILABLE, DatasyncHook.taskFinishFlags));
datasyncHookMockedStatic.close();
}
@ -206,10 +206,11 @@ public class DatasyncTaskTest {
public void testDescribeTaskExec() {
DatasyncHook hook = spy(new DatasyncHook());
doReturn(null).when(hook).queryDatasyncTaskExecStatus();
Assert.assertEquals(false, hook.doubleCheckExecStatus(TaskExecutionStatus.SUCCESS, DatasyncHook.doneStatus));
Assertions.assertEquals(false,
hook.doubleCheckExecStatus(TaskExecutionStatus.SUCCESS, DatasyncHook.doneStatus));
doReturn(TaskExecutionStatus.SUCCESS).when(hook).queryDatasyncTaskExecStatus();
Assert.assertEquals(true, hook.doubleCheckExecStatus(TaskExecutionStatus.SUCCESS, DatasyncHook.doneStatus));
Assertions.assertEquals(true, hook.doubleCheckExecStatus(TaskExecutionStatus.SUCCESS, DatasyncHook.doneStatus));
datasyncHookMockedStatic.close();
}

View File

@ -18,12 +18,13 @@
package org.apache.dolphinscheduler.plugin.task.datax;
import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class DataxParametersTest {
/**
@ -32,27 +33,27 @@ public class DataxParametersTest {
public static final String JVM_PARAM = " --jvm=\"-Xms%sG -Xmx%sG\" ";
@Test
public void testLoadJvmEnv() {
public void testLoadJvmEnv() {
DataxParameters dataxParameters = new DataxParameters();
dataxParameters.setXms(0);
dataxParameters.setXmx(-100);
String actual = loadJvmEnvTest(dataxParameters);
String actual = loadJvmEnvTest(dataxParameters);
String except = " --jvm=\"-Xms1G -Xmx1G\" ";
Assert.assertEquals(except,actual);
Assertions.assertEquals(except, actual);
dataxParameters.setXms(13);
dataxParameters.setXmx(14);
actual = loadJvmEnvTest(dataxParameters);
actual = loadJvmEnvTest(dataxParameters);
except = " --jvm=\"-Xms13G -Xmx14G\" ";
Assert.assertEquals(except,actual);
Assertions.assertEquals(except, actual);
}
@Test
public void testToString() {
public void testToString() {
DataxParameters dataxParameters = new DataxParameters();
List<ResourceInfo> resourceInfoList = new ArrayList<>();
@ -92,7 +93,7 @@ public class DataxParametersTest {
+ "resourceList=[{\"id\":2,\"resourceName\":\"/hdfs.keytab\",\"res\":null}]"
+ "}";
Assert.assertEquals(expected,dataxParameters.toString());
Assertions.assertEquals(expected, dataxParameters.toString());
}
public String loadJvmEnvTest(DataxParameters dataXParameters) {

View File

@ -23,15 +23,16 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import java.time.Duration;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import com.amazonaws.services.databasemigrationservice.AWSDatabaseMigrationService;
import com.amazonaws.services.databasemigrationservice.model.CreateReplicationTaskResult;
@ -40,92 +41,99 @@ import com.amazonaws.services.databasemigrationservice.model.ReplicationTask;
import com.amazonaws.services.databasemigrationservice.model.ReplicationTaskStats;
import com.amazonaws.services.databasemigrationservice.model.StartReplicationTaskResult;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class DmsHookTest {
final String replicationTaskArn = "arn:aws:dms:ap-southeast-1:123456789012:task:task";
AWSDatabaseMigrationService client;
@Before
@BeforeEach
public void before() {
client = mock(AWSDatabaseMigrationService.class);
}
@Test(timeout = 60000)
@Test
public void testCreateReplicationTask() throws Exception {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
Assertions.assertTimeout(Duration.ofMillis(60000), () -> {
mockHook.when(DmsHook::createClient).thenReturn(client);
DmsHook dmsHook = spy(new DmsHook());
CreateReplicationTaskResult createReplicationTaskResult = mock(CreateReplicationTaskResult.class);
when(client.createReplicationTask(any())).thenReturn(createReplicationTaskResult);
DmsHook dmsHook = spy(new DmsHook());
CreateReplicationTaskResult createReplicationTaskResult = mock(CreateReplicationTaskResult.class);
when(client.createReplicationTask(any())).thenReturn(createReplicationTaskResult);
ReplicationTask replicationTask = mock(ReplicationTask.class);
final String taskIdentifier = "task";
when(replicationTask.getReplicationTaskArn()).thenReturn(replicationTaskArn);
when(replicationTask.getReplicationTaskIdentifier()).thenReturn(taskIdentifier);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.READY);
when(createReplicationTaskResult.getReplicationTask()).thenReturn(replicationTask);
ReplicationTask replicationTask = mock(ReplicationTask.class);
final String taskIdentifier = "task";
when(replicationTask.getReplicationTaskArn()).thenReturn(replicationTaskArn);
when(replicationTask.getReplicationTaskIdentifier()).thenReturn(taskIdentifier);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.READY);
when(createReplicationTaskResult.getReplicationTask()).thenReturn(replicationTask);
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
Assert.assertTrue(dmsHook.createReplicationTask());
Assert.assertEquals(replicationTaskArn, dmsHook.getReplicationTaskArn());
Assert.assertEquals(taskIdentifier, dmsHook.getReplicationTaskIdentifier());
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
Assertions.assertTrue(dmsHook.createReplicationTask());
Assertions.assertEquals(replicationTaskArn, dmsHook.getReplicationTaskArn());
Assertions.assertEquals(taskIdentifier, dmsHook.getReplicationTaskIdentifier());
});
}
}
@Test(timeout = 60000)
@Test
public void testStartReplicationTask() {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
Assertions.assertTimeout(Duration.ofMillis(60000), () -> {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
DmsHook dmsHook = spy(new DmsHook());
StartReplicationTaskResult startReplicationTaskResult = mock(StartReplicationTaskResult.class);
when(client.startReplicationTask(any())).thenReturn(startReplicationTaskResult);
DmsHook dmsHook = spy(new DmsHook());
StartReplicationTaskResult startReplicationTaskResult = mock(StartReplicationTaskResult.class);
when(client.startReplicationTask(any())).thenReturn(startReplicationTaskResult);
ReplicationTask replicationTask = mock(ReplicationTask.class);
when(replicationTask.getReplicationTaskArn()).thenReturn(replicationTaskArn);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.RUNNING);
when(startReplicationTaskResult.getReplicationTask()).thenReturn(replicationTask);
ReplicationTask replicationTask = mock(ReplicationTask.class);
when(replicationTask.getReplicationTaskArn()).thenReturn(replicationTaskArn);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.RUNNING);
when(startReplicationTaskResult.getReplicationTask()).thenReturn(replicationTask);
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
Assert.assertTrue(dmsHook.startReplicationTask());
Assert.assertEquals(replicationTaskArn, dmsHook.getReplicationTaskArn());
}
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
Assertions.assertTrue(dmsHook.startReplicationTask());
Assertions.assertEquals(replicationTaskArn, dmsHook.getReplicationTaskArn());
}
});
}
@Test(timeout = 60000)
@Test
public void testCheckFinishedReplicationTask() {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
DmsHook dmsHook = spy(new DmsHook());
Assertions.assertTimeout(Duration.ofMillis(60000), () -> {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
DmsHook dmsHook = spy(new DmsHook());
ReplicationTask replicationTask = mock(ReplicationTask.class);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.STOPPED);
ReplicationTask replicationTask = mock(ReplicationTask.class);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.STOPPED);
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
when(replicationTask.getStopReason()).thenReturn("*_FINISHED");
Assert.assertTrue(dmsHook.checkFinishedReplicationTask());
when(replicationTask.getStopReason()).thenReturn("*_FINISHED");
Assertions.assertTrue(dmsHook.checkFinishedReplicationTask());
when(replicationTask.getStopReason()).thenReturn("*_ERROR");
Assert.assertFalse(dmsHook.checkFinishedReplicationTask());
}
when(replicationTask.getStopReason()).thenReturn("*_ERROR");
Assertions.assertFalse(dmsHook.checkFinishedReplicationTask());
}
});
}
@Test(timeout = 60000)
@Test
public void testDeleteReplicationTask() {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
Assertions.assertTimeout(Duration.ofMillis(60000), () -> {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
DmsHook dmsHook = spy(new DmsHook());
ReplicationTask replicationTask = mock(ReplicationTask.class);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.DELETE);
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
Assert.assertTrue(dmsHook.deleteReplicationTask());
}
DmsHook dmsHook = spy(new DmsHook());
ReplicationTask replicationTask = mock(ReplicationTask.class);
when(replicationTask.getStatus()).thenReturn(DmsHook.STATUS.DELETE);
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
Assertions.assertTrue(dmsHook.deleteReplicationTask());
}
});
}
@Test
@ -145,29 +153,27 @@ public class DmsHookTest {
doReturn(false).when(dmsHook).testConnection(replicationInstanceArn, falseSourceEndpointArn);
doReturn(false).when(dmsHook).testConnection(replicationInstanceArn, falseTargetEndpointArn);
dmsHook.setReplicationInstanceArn(replicationInstanceArn);
dmsHook.setSourceEndpointArn(trueSourceEndpointArn);
dmsHook.setTargetEndpointArn(trueTargetEndpointArn);
Assert.assertTrue(dmsHook.testConnectionEndpoint());
Assertions.assertTrue(dmsHook.testConnectionEndpoint());
dmsHook.setSourceEndpointArn(falseSourceEndpointArn);
dmsHook.setTargetEndpointArn(falseTargetEndpointArn);
Assert.assertFalse(dmsHook.testConnectionEndpoint());
Assertions.assertFalse(dmsHook.testConnectionEndpoint());
dmsHook.setSourceEndpointArn(trueSourceEndpointArn);
dmsHook.setTargetEndpointArn(falseTargetEndpointArn);
Assert.assertFalse(dmsHook.testConnectionEndpoint());
Assertions.assertFalse(dmsHook.testConnectionEndpoint());
dmsHook.setSourceEndpointArn(falseSourceEndpointArn);
dmsHook.setTargetEndpointArn(trueTargetEndpointArn);
Assert.assertFalse(dmsHook.testConnectionEndpoint());
Assertions.assertFalse(dmsHook.testConnectionEndpoint());
}
}
@Test
public void testDescribeReplicationTasks() {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
@ -180,7 +186,8 @@ public class DmsHookTest {
when(client.describeReplicationTasks(any())).thenReturn(describeReplicationTasksResult);
ReplicationTask replicationTask = mock(ReplicationTask.class);
when(replicationTask.getReplicationTaskArn()).thenReturn("arn:aws:dms:ap-southeast-1:123456789012:task:task");
when(replicationTask.getReplicationTaskArn())
.thenReturn("arn:aws:dms:ap-southeast-1:123456789012:task:task");
when(replicationTask.getReplicationTaskIdentifier()).thenReturn("task");
final String sourceArn = "arn:aws:dms:ap-southeast-1:123456789012:endpoint:source";
@ -192,46 +199,43 @@ public class DmsHookTest {
when(describeReplicationTasksResult.getReplicationTasks()).thenReturn(Arrays.asList(replicationTask));
ReplicationTask replicationTaskOut = dmsHook.describeReplicationTasks();
Assert.assertNotEquals(dmsHook.getReplicationInstanceArn(), replicationTaskOut.getReplicationTaskArn());
Assert.assertEquals("task", replicationTaskOut.getReplicationTaskIdentifier());
Assert.assertEquals(sourceArn, replicationTaskOut.getSourceEndpointArn());
Assert.assertEquals(targetArn, replicationTaskOut.getTargetEndpointArn());
Assertions.assertNotEquals(dmsHook.getReplicationInstanceArn(), replicationTaskOut.getReplicationTaskArn());
Assertions.assertEquals("task", replicationTaskOut.getReplicationTaskIdentifier());
Assertions.assertEquals(sourceArn, replicationTaskOut.getSourceEndpointArn());
Assertions.assertEquals(targetArn, replicationTaskOut.getTargetEndpointArn());
}
}
@Test(timeout = 60000)
@Test
public void testAwaitReplicationTaskStatus() {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
DmsHook dmsHook = spy(new DmsHook());
Assertions.assertTimeout(Duration.ofMillis(60000), () -> {
try (MockedStatic<DmsHook> mockHook = Mockito.mockStatic(DmsHook.class)) {
mockHook.when(DmsHook::createClient).thenReturn(client);
DmsHook dmsHook = spy(new DmsHook());
ReplicationTask replicationTask = mock(ReplicationTask.class);
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
ReplicationTask replicationTask = mock(ReplicationTask.class);
doReturn(replicationTask).when(dmsHook).describeReplicationTasks();
ReplicationTaskStats taskStats = mock(ReplicationTaskStats.class);
when(replicationTask.getReplicationTaskStats()).thenReturn(taskStats);
when(taskStats.getFullLoadProgressPercent()).thenReturn(100);
ReplicationTaskStats taskStats = mock(ReplicationTaskStats.class);
when(replicationTask.getReplicationTaskStats()).thenReturn(taskStats);
when(taskStats.getFullLoadProgressPercent()).thenReturn(100);
when(replicationTask.getStatus()).thenReturn(
DmsHook.STATUS.STOPPED
);
Assert.assertTrue(dmsHook.awaitReplicationTaskStatus(DmsHook.STATUS.STOPPED));
when(replicationTask.getStatus()).thenReturn(
DmsHook.STATUS.STOPPED);
Assertions.assertTrue(dmsHook.awaitReplicationTaskStatus(DmsHook.STATUS.STOPPED));
when(replicationTask.getStatus()).thenReturn(
DmsHook.STATUS.RUNNING,
DmsHook.STATUS.STOPPED
);
Assert.assertTrue(dmsHook.awaitReplicationTaskStatus(DmsHook.STATUS.STOPPED));
when(replicationTask.getStatus()).thenReturn(
DmsHook.STATUS.RUNNING,
DmsHook.STATUS.STOPPED);
Assertions.assertTrue(dmsHook.awaitReplicationTaskStatus(DmsHook.STATUS.STOPPED));
when(replicationTask.getStatus()).thenReturn(
DmsHook.STATUS.RUNNING,
DmsHook.STATUS.STOPPED
);
Assert.assertFalse(dmsHook.awaitReplicationTaskStatus(DmsHook.STATUS.STOPPED, DmsHook.STATUS.RUNNING));
}
when(replicationTask.getStatus()).thenReturn(
DmsHook.STATUS.RUNNING,
DmsHook.STATUS.STOPPED);
Assertions.assertFalse(
dmsHook.awaitReplicationTaskStatus(DmsHook.STATUS.STOPPED, DmsHook.STATUS.RUNNING));
}
});
}
}

View File

@ -26,18 +26,18 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import java.lang.reflect.Field;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import com.amazonaws.services.databasemigrationservice.model.InvalidResourceStateException;
import com.amazonaws.services.databasemigrationservice.model.ReplicationTask;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class DmsTaskTest {
@Mock
@ -45,7 +45,7 @@ public class DmsTaskTest {
DmsTask dmsTask;
@Before
@BeforeEach
public void before() throws Exception {
DmsParameters dmsParameters = new DmsParameters();
dmsTask = initTask(dmsParameters);
@ -56,20 +56,21 @@ public class DmsTaskTest {
@Test
public void testCreateTaskJson() {
String jsonData = "{\n" +
" \"ReplicationTaskIdentifier\":\"task6\",\n" +
" \"SourceEndpointArn\":\"arn:aws:dms:ap-southeast-1:511640773671:endpoint:Z7SUEAL273SCT7OCPYNF5YNDHJDDFRATGNQISOQ\",\n" +
" \"TargetEndpointArn\":\"arn:aws:dms:ap-southeast-1:511640773671:endpoint:aws-mysql57-target\",\n" +
" \"ReplicationInstanceArn\":\"arn:aws:dms:ap-southeast-1:511640773671:rep:dms2c2g\",\n" +
" \"MigrationType\":\"full-load\",\n" +
" \"TableMappings\":\"file://table-mapping.json\",\n" +
" \"ReplicationTaskSettings\":\"file://ReplicationTaskSettings.json\",\n" +
" \"Tags\":[\n" +
" {\n" +
" \"Key\":\"key1\",\n" +
" \"Value\":\"value1\"\n" +
" }\n" +
" ]\n" +
"}";
" \"ReplicationTaskIdentifier\":\"task6\",\n" +
" \"SourceEndpointArn\":\"arn:aws:dms:ap-southeast-1:511640773671:endpoint:Z7SUEAL273SCT7OCPYNF5YNDHJDDFRATGNQISOQ\",\n"
+
" \"TargetEndpointArn\":\"arn:aws:dms:ap-southeast-1:511640773671:endpoint:aws-mysql57-target\",\n" +
" \"ReplicationInstanceArn\":\"arn:aws:dms:ap-southeast-1:511640773671:rep:dms2c2g\",\n" +
" \"MigrationType\":\"full-load\",\n" +
" \"TableMappings\":\"file://table-mapping.json\",\n" +
" \"ReplicationTaskSettings\":\"file://ReplicationTaskSettings.json\",\n" +
" \"Tags\":[\n" +
" {\n" +
" \"Key\":\"key1\",\n" +
" \"Value\":\"value1\"\n" +
" }\n" +
" ]\n" +
"}";
DmsParameters dmsParameters = new DmsParameters();
dmsParameters.setIsJsonFormat(true);
@ -78,42 +79,45 @@ public class DmsTaskTest {
DmsTask dmsTask = initTask(dmsParameters);
dmsTask.convertJsonParameters();
DmsParameters dmsParametersNew = dmsTask.getParameters();
Assert.assertEquals("task6", dmsParametersNew.getReplicationTaskIdentifier());
Assert.assertEquals("arn:aws:dms:ap-southeast-1:511640773671:endpoint:Z7SUEAL273SCT7OCPYNF5YNDHJDDFRATGNQISOQ", dmsParametersNew.getSourceEndpointArn());
Assert.assertEquals("arn:aws:dms:ap-southeast-1:511640773671:endpoint:aws-mysql57-target", dmsParametersNew.getTargetEndpointArn());
Assert.assertEquals("arn:aws:dms:ap-southeast-1:511640773671:rep:dms2c2g", dmsParametersNew.getReplicationInstanceArn());
Assert.assertEquals("full-load", dmsParametersNew.getMigrationType());
Assert.assertEquals("file://table-mapping.json", dmsParametersNew.getTableMappings());
Assert.assertEquals("file://ReplicationTaskSettings.json", dmsParametersNew.getReplicationTaskSettings());
Assert.assertEquals("key1", dmsParametersNew.getTags().get(0).getKey());
Assert.assertEquals("value1", dmsParametersNew.getTags().get(0).getValue());
Assertions.assertEquals("task6", dmsParametersNew.getReplicationTaskIdentifier());
Assertions.assertEquals(
"arn:aws:dms:ap-southeast-1:511640773671:endpoint:Z7SUEAL273SCT7OCPYNF5YNDHJDDFRATGNQISOQ",
dmsParametersNew.getSourceEndpointArn());
Assertions.assertEquals("arn:aws:dms:ap-southeast-1:511640773671:endpoint:aws-mysql57-target",
dmsParametersNew.getTargetEndpointArn());
Assertions.assertEquals("arn:aws:dms:ap-southeast-1:511640773671:rep:dms2c2g",
dmsParametersNew.getReplicationInstanceArn());
Assertions.assertEquals("full-load", dmsParametersNew.getMigrationType());
Assertions.assertEquals("file://table-mapping.json", dmsParametersNew.getTableMappings());
Assertions.assertEquals("file://ReplicationTaskSettings.json", dmsParametersNew.getReplicationTaskSettings());
Assertions.assertEquals("key1", dmsParametersNew.getTags().get(0).getKey());
Assertions.assertEquals("value1", dmsParametersNew.getTags().get(0).getValue());
}
@Test
public void testCheckCreateReplicationTask() throws Exception {
DmsParameters dmsParameters = dmsTask.getParameters();
dmsParameters.setIsRestartTask(true);
Assert.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.checkCreateReplicationTask());
Assertions.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.checkCreateReplicationTask());
dmsParameters.setIsRestartTask(false);
when(dmsHook.createReplicationTask()).thenReturn(true);
Assert.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.checkCreateReplicationTask());
Assertions.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.checkCreateReplicationTask());
when(dmsHook.createReplicationTask()).thenReturn(false);
dmsTask.checkCreateReplicationTask();
Assert.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.checkCreateReplicationTask());
Assertions.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.checkCreateReplicationTask());
}
@Test
public void testStartReplicationTask() {
when(dmsHook.startReplicationTask()).thenReturn(true);
Assert.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.startReplicationTask());
Assertions.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.startReplicationTask());
when(dmsHook.startReplicationTask()).thenReturn(false);
Assert.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.startReplicationTask());
Assertions.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.startReplicationTask());
}
@Test
@ -123,25 +127,23 @@ public class DmsTaskTest {
parameters.setIsRestartTask(false);
when(dmsHook.testConnectionEndpoint()).thenReturn(true);
when(dmsHook.startReplicationTask())
.thenThrow(new InvalidResourceStateException("Test connection"))
.thenReturn(true);
Assert.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.startReplicationTask());
.thenThrow(new InvalidResourceStateException("Test connection"))
.thenReturn(true);
Assertions.assertEquals(TaskConstants.EXIT_CODE_SUCCESS, dmsTask.startReplicationTask());
when(dmsHook.startReplicationTask())
.thenThrow(new InvalidResourceStateException("Test connection"))
.thenReturn(false);
Assert.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.startReplicationTask());
.thenThrow(new InvalidResourceStateException("Test connection"))
.thenReturn(false);
Assertions.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.startReplicationTask());
}
@Test
public void testStartReplicationTaskRestartOtherException() {
DmsParameters parameters = dmsTask.getParameters();
parameters.setIsRestartTask(false);
when(dmsHook.startReplicationTask()).thenThrow(new InvalidResourceStateException("other error"));
Assert.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.startReplicationTask());
Assertions.assertEquals(TaskConstants.EXIT_CODE_FAILURE, dmsTask.startReplicationTask());
}
@Test
@ -154,22 +156,21 @@ public class DmsTaskTest {
when(replicationTask.getMigrationType()).thenReturn("cdc");
parameters.setCdcStopPosition("now");
Assert.assertFalse(dmsTask.isStopTaskWhenCdc());
Assertions.assertFalse(dmsTask.isStopTaskWhenCdc());
when(replicationTask.getMigrationType()).thenReturn("full-load-and-cdc");
parameters.setCdcStopPosition("now");
Assert.assertFalse(dmsTask.isStopTaskWhenCdc());
Assertions.assertFalse(dmsTask.isStopTaskWhenCdc());
when(replicationTask.getMigrationType()).thenReturn("full-load-and-cdc");
parameters.setCdcStopPosition(null);
Assert.assertTrue(dmsTask.isStopTaskWhenCdc());
Assertions.assertTrue(dmsTask.isStopTaskWhenCdc());
when(replicationTask.getMigrationType()).thenReturn("full-load");
parameters.setCdcStopPosition(null);
Assert.assertFalse(dmsTask.isStopTaskWhenCdc());
Assertions.assertFalse(dmsTask.isStopTaskWhenCdc());
}
private DmsTask initTask(DmsParameters dmsParameters) {
TaskExecutionContext taskExecutionContext = createContext(dmsParameters);
DmsTask dmsTask = new DmsTask(taskExecutionContext);
@ -184,5 +185,3 @@ public class DmsTaskTest {
return taskExecutionContext;
}
}

View File

@ -21,14 +21,13 @@ import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContextCacheManager;
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class DvcTaskTest {
public TaskExecutionContext createContext(DvcParameters dvcParameters) {
@ -52,42 +51,45 @@ public class DvcTaskTest {
@Test
public void testDvcUpload() throws Exception {
DvcTask dvcTask = initTask(createUploadParameters());
Assert.assertEquals(dvcTask.buildCommand(),
"which dvc || { echo \"dvc does not exist\"; exit 1; }; DVC_REPO=git@github.com:<YOUR-NAME-OR-ORG>/dvc-data-repository-example\n" +
"DVC_DATA_PATH=/home/<YOUR-NAME-OR-ORG>/test\n" +
"DVC_DATA_LOCATION=test\n" +
"DVC_VERSION=iris_v2.3.1\n" +
"DVC_MESSAGE=\"add test iris data\"\n" +
"git clone $DVC_REPO dvc-repository; cd dvc-repository; pwd\n" +
"dvc config core.autostage true --local || exit 1\n" +
"dvc add $DVC_DATA_PATH -v -o $DVC_DATA_LOCATION --to-remote || exit 1\n" +
"git commit -am \"$DVC_MESSAGE\"\n" +
"git tag \"$DVC_VERSION\" -m \"$DVC_MESSAGE\"\n" +
"git push --all\n" +
"git push --tags");
Assertions.assertEquals(dvcTask.buildCommand(),
"which dvc || { echo \"dvc does not exist\"; exit 1; }; DVC_REPO=git@github.com:<YOUR-NAME-OR-ORG>/dvc-data-repository-example\n"
+
"DVC_DATA_PATH=/home/<YOUR-NAME-OR-ORG>/test\n" +
"DVC_DATA_LOCATION=test\n" +
"DVC_VERSION=iris_v2.3.1\n" +
"DVC_MESSAGE=\"add test iris data\"\n" +
"git clone $DVC_REPO dvc-repository; cd dvc-repository; pwd\n" +
"dvc config core.autostage true --local || exit 1\n" +
"dvc add $DVC_DATA_PATH -v -o $DVC_DATA_LOCATION --to-remote || exit 1\n" +
"git commit -am \"$DVC_MESSAGE\"\n" +
"git tag \"$DVC_VERSION\" -m \"$DVC_MESSAGE\"\n" +
"git push --all\n" +
"git push --tags");
}
@Test
public void testDvcDownload() throws Exception {
DvcTask dvcTask = initTask(createDownloadParameters());
Assert.assertEquals(dvcTask.buildCommand(),
"which dvc || { echo \"dvc does not exist\"; exit 1; }; DVC_REPO=git@github.com:<YOUR-NAME-OR-ORG>/dvc-data-repository-example\n" +
"DVC_DATA_PATH=data\n" +
"DVC_DATA_LOCATION=iris\n" +
"DVC_VERSION=iris_v2.3.1\n" +
"dvc get $DVC_REPO $DVC_DATA_LOCATION -o $DVC_DATA_PATH -v --rev $DVC_VERSION");
Assertions.assertEquals(dvcTask.buildCommand(),
"which dvc || { echo \"dvc does not exist\"; exit 1; }; DVC_REPO=git@github.com:<YOUR-NAME-OR-ORG>/dvc-data-repository-example\n"
+
"DVC_DATA_PATH=data\n" +
"DVC_DATA_LOCATION=iris\n" +
"DVC_VERSION=iris_v2.3.1\n" +
"dvc get $DVC_REPO $DVC_DATA_LOCATION -o $DVC_DATA_PATH -v --rev $DVC_VERSION");
}
@Test
public void testInitDvc() throws Exception {
DvcTask dvcTask = initTask(createInitDvcParameters());
Assert.assertEquals(dvcTask.buildCommand(),
"which dvc || { echo \"dvc does not exist\"; exit 1; }; DVC_REPO=git@github.com:<YOUR-NAME-OR-ORG>/dvc-data-repository-example\n" +
"git clone $DVC_REPO dvc-repository; cd dvc-repository; pwd\n" +
"dvc init || exit 1\n" +
"dvc remote add origin ~/.dvc_test -d\n" +
"git commit -am \"init dvc project and add remote\"; git push");
Assertions.assertEquals(dvcTask.buildCommand(),
"which dvc || { echo \"dvc does not exist\"; exit 1; }; DVC_REPO=git@github.com:<YOUR-NAME-OR-ORG>/dvc-data-repository-example\n"
+
"git clone $DVC_REPO dvc-repository; cd dvc-repository; pwd\n" +
"dvc init || exit 1\n" +
"dvc remote add origin ~/.dvc_test -d\n" +
"git commit -am \"init dvc project and add remote\"; git push");
}
private DvcParameters createUploadParameters() {
@ -118,4 +120,4 @@ public class DvcTaskTest {
parameters.setDvcStoreUrl("~/.dvc_test");
return parameters;
}
}
}

View File

@ -33,12 +33,12 @@ import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
import com.amazonaws.services.elasticmapreduce.model.AddJobFlowStepsResult;
@ -53,23 +53,23 @@ import com.amazonaws.services.elasticmapreduce.model.StepStatus;
*
* @since v3.1.0
*/
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class EmrAddStepsTaskTest {
private final StepStatus pendingState =
new StepStatus().withState(StepState.PENDING);
new StepStatus().withState(StepState.PENDING);
private final StepStatus runningState =
new StepStatus().withState(StepState.RUNNING);
new StepStatus().withState(StepState.RUNNING);
private final StepStatus completedState =
new StepStatus().withState(StepState.COMPLETED);
new StepStatus().withState(StepState.COMPLETED);
private final StepStatus cancelledState =
new StepStatus().withState(StepState.CANCELLED);
new StepStatus().withState(StepState.CANCELLED);
private final StepStatus failedState =
new StepStatus().withState(StepState.FAILED);
new StepStatus().withState(StepState.FAILED);
private EmrAddStepsTask emrAddStepsTask;
private AmazonElasticMapReduce emrClient;
@ -78,7 +78,7 @@ public class EmrAddStepsTaskTest {
};
@Before
@BeforeEach
public void before() throws Exception {
// mock EmrParameters and EmrAddStepsTask
EmrParameters emrParameters = buildEmrTaskParameters();
@ -91,27 +91,30 @@ public class EmrAddStepsTaskTest {
emrClient = Mockito.mock(AmazonElasticMapReduce.class);
AddJobFlowStepsResult addJobFlowStepsResult = Mockito.mock(AddJobFlowStepsResult.class);
Mockito.when(emrClient.addJobFlowSteps(any())).thenReturn(addJobFlowStepsResult);
Mockito.when(addJobFlowStepsResult.getStepIds()).thenReturn(Collections.singletonList("step-xx"));
Mockito.lenient().when(emrClient.addJobFlowSteps(any())).thenReturn(addJobFlowStepsResult);
Mockito.lenient().when(addJobFlowStepsResult.getStepIds()).thenReturn(Collections.singletonList("step-xx"));
Mockito.doReturn(emrClient).when(emrAddStepsTask).createEmrClient();
DescribeStepResult describeStepResult = Mockito.mock(DescribeStepResult.class);
Mockito.when(emrClient.describeStep(any())).thenReturn(describeStepResult);
Mockito.lenient().when(emrClient.describeStep(any())).thenReturn(describeStepResult);
// mock step
step = Mockito.mock(Step.class);
Mockito.when(describeStepResult.getStep()).thenReturn(step);
Mockito.lenient().when(describeStepResult.getStep()).thenReturn(step);
emrAddStepsTask.init();
}
@Test(expected = TaskException.class)
@Test
public void testCanNotParseJson() throws Exception {
Mockito.when(emrAddStepsTask.createAddJobFlowStepsRequest()).thenThrow(new EmrTaskException("can not parse AddJobFlowStepsRequest from json", new Exception("error")));
emrAddStepsTask.handle(taskCallBack);
Mockito.when(emrAddStepsTask.createAddJobFlowStepsRequest()).thenThrow(
new EmrTaskException("can not parse AddJobFlowStepsRequest from json", new Exception("error")));
Assertions.assertThrows(TaskException.class, () -> {
emrAddStepsTask.handle(taskCallBack);
});
}
@Test(expected = TaskException.class)
@Test
public void testDefineJsonStepNotOne() throws Exception {
// mock EmrParameters and EmrAddStepsTask
EmrParameters emrParameters = buildErrorEmrTaskParameters();
@ -120,8 +123,11 @@ public class EmrAddStepsTaskTest {
Mockito.when(taskExecutionContext.getTaskParams()).thenReturn(emrParametersString);
emrAddStepsTask = Mockito.spy(new EmrAddStepsTask(taskExecutionContext));
Mockito.doReturn(emrClient).when(emrAddStepsTask).createEmrClient();
emrAddStepsTask.init();
emrAddStepsTask.handle(taskCallBack);
Assertions.assertThrows(TaskException.class, () -> {
emrAddStepsTask.init();
emrAddStepsTask.handle(taskCallBack);
});
}
@Test
@ -129,7 +135,7 @@ public class EmrAddStepsTaskTest {
Mockito.when(step.getStatus()).thenReturn(pendingState, runningState, completedState);
emrAddStepsTask.handle(taskCallBack);
Assert.assertEquals(EXIT_CODE_SUCCESS, emrAddStepsTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, emrAddStepsTask.getExitStatusCode());
}
@Test
@ -137,17 +143,20 @@ public class EmrAddStepsTaskTest {
Mockito.when(step.getStatus()).thenReturn(pendingState, runningState, cancelledState);
emrAddStepsTask.handle(taskCallBack);
Assert.assertEquals(EXIT_CODE_KILL, emrAddStepsTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_KILL, emrAddStepsTask.getExitStatusCode());
}
@Test(expected = TaskException.class)
@Test
public void testHandleError() throws Exception {
Mockito.when(step.getStatus()).thenReturn(pendingState, runningState, failedState);
emrAddStepsTask.handle(taskCallBack);
Assert.assertEquals(EXIT_CODE_FAILURE, emrAddStepsTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, emrAddStepsTask.getExitStatusCode());
Mockito.when(emrClient.addJobFlowSteps(any())).thenThrow(new AmazonElasticMapReduceException("error"), new EmrTaskException());
emrAddStepsTask.handle(taskCallBack);
Mockito.when(emrClient.addJobFlowSteps(any())).thenThrow(new AmazonElasticMapReduceException("error"),
new EmrTaskException());
Assertions.assertThrows(TaskException.class, () -> {
emrAddStepsTask.handle(taskCallBack);
});
}
private EmrParameters buildEmrTaskParameters() {
@ -179,4 +188,4 @@ public class EmrAddStepsTaskTest {
return emrParameters;
}
}
}

View File

@ -32,12 +32,12 @@ import org.apache.commons.io.IOUtils;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
import com.amazonaws.services.elasticmapreduce.model.AmazonElasticMapReduceException;
@ -49,56 +49,49 @@ import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class EmrJobFlowTaskTest {
private final ClusterStatus startingStatus =
new ClusterStatus().withState(ClusterState.STARTING)
.withStateChangeReason(new ClusterStateChangeReason());
new ClusterStatus().withState(ClusterState.STARTING)
.withStateChangeReason(new ClusterStateChangeReason());
private final ClusterStatus softwareConfigStatus =
new ClusterStatus().withState(ClusterState.STARTING)
.withStateChangeReason(
new ClusterStateChangeReason()
.withMessage("Configuring cluster software")
);
new ClusterStatus().withState(ClusterState.STARTING)
.withStateChangeReason(
new ClusterStateChangeReason()
.withMessage("Configuring cluster software"));
private final ClusterStatus runningStatus =
new ClusterStatus().withState(ClusterState.RUNNING)
.withStateChangeReason(
new ClusterStateChangeReason().withMessage("Running step")
);
new ClusterStatus().withState(ClusterState.RUNNING)
.withStateChangeReason(
new ClusterStateChangeReason().withMessage("Running step"));
private final ClusterStatus terminatingStatus =
new ClusterStatus().withState(ClusterState.TERMINATING.toString())
.withStateChangeReason(
new ClusterStateChangeReason()
.withCode(ClusterStateChangeReasonCode.ALL_STEPS_COMPLETED)
.withMessage("Steps completed")
);
new ClusterStatus().withState(ClusterState.TERMINATING.toString())
.withStateChangeReason(
new ClusterStateChangeReason()
.withCode(ClusterStateChangeReasonCode.ALL_STEPS_COMPLETED)
.withMessage("Steps completed"));
private final ClusterStatus waitingStatus =
new ClusterStatus().withState(ClusterState.WAITING)
.withStateChangeReason(
new ClusterStateChangeReason()
.withMessage("Cluster ready after last step completed.")
);
new ClusterStatus().withState(ClusterState.WAITING)
.withStateChangeReason(
new ClusterStateChangeReason()
.withMessage("Cluster ready after last step completed."));
private final ClusterStatus userRequestTerminateStatus =
new ClusterStatus().withState(ClusterState.TERMINATING)
.withStateChangeReason(
new ClusterStateChangeReason()
.withCode(ClusterStateChangeReasonCode.USER_REQUEST)
.withMessage("Terminated by user request")
);
new ClusterStatus().withState(ClusterState.TERMINATING)
.withStateChangeReason(
new ClusterStateChangeReason()
.withCode(ClusterStateChangeReasonCode.USER_REQUEST)
.withMessage("Terminated by user request"));
private final ClusterStatus terminatedWithErrorsStatus =
new ClusterStatus().withState(ClusterState.TERMINATED_WITH_ERRORS)
.withStateChangeReason(
new ClusterStateChangeReason()
.withCode(ClusterStateChangeReasonCode.STEP_FAILURE)
);
new ClusterStatus().withState(ClusterState.TERMINATED_WITH_ERRORS)
.withStateChangeReason(
new ClusterStateChangeReason()
.withCode(ClusterStateChangeReasonCode.STEP_FAILURE));
private EmrJobFlowTask emrJobFlowTask;
private AmazonElasticMapReduce emrClient;
@ -107,7 +100,7 @@ public class EmrJobFlowTaskTest {
};
@Before
@BeforeEach
public void before() throws Exception {
String emrParameters = buildEmrTaskParameters();
TaskExecutionContext taskExecutionContext = Mockito.mock(TaskExecutionContext.class);
@ -117,15 +110,15 @@ public class EmrJobFlowTaskTest {
// mock emrClient and behavior
emrClient = Mockito.mock(AmazonElasticMapReduce.class);
RunJobFlowResult runJobFlowResult = Mockito.mock(RunJobFlowResult.class);
Mockito.when(emrClient.runJobFlow(any())).thenReturn(runJobFlowResult);
Mockito.when(runJobFlowResult.getJobFlowId()).thenReturn("xx");
Mockito.lenient().when(emrClient.runJobFlow(any())).thenReturn(runJobFlowResult);
Mockito.lenient().when(runJobFlowResult.getJobFlowId()).thenReturn("xx");
Mockito.doReturn(emrClient).when(emrJobFlowTask).createEmrClient();
DescribeClusterResult describeClusterResult = Mockito.mock(DescribeClusterResult.class);
Mockito.when(emrClient.describeCluster(any())).thenReturn(describeClusterResult);
Mockito.lenient().when(emrClient.describeCluster(any())).thenReturn(describeClusterResult);
// mock cluster
cluster = Mockito.mock(Cluster.class);
Mockito.when(describeClusterResult.getCluster()).thenReturn(cluster);
Mockito.lenient().when(describeClusterResult.getCluster()).thenReturn(cluster);
emrJobFlowTask.init();
}
@ -133,19 +126,21 @@ public class EmrJobFlowTaskTest {
@Test
public void testHandle() throws Exception {
Mockito.when(cluster.getStatus()).thenReturn(startingStatus, softwareConfigStatus, runningStatus, terminatingStatus);
Mockito.when(cluster.getStatus()).thenReturn(startingStatus, softwareConfigStatus, runningStatus,
terminatingStatus);
emrJobFlowTask.handle(taskCallBack);
Assert.assertEquals(EXIT_CODE_SUCCESS, emrJobFlowTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, emrJobFlowTask.getExitStatusCode());
}
@Test
public void testHandleAliveWhenNoSteps() throws Exception {
Mockito.when(cluster.getStatus()).thenReturn(startingStatus, softwareConfigStatus, runningStatus, waitingStatus);
Mockito.when(cluster.getStatus()).thenReturn(startingStatus, softwareConfigStatus, runningStatus,
waitingStatus);
emrJobFlowTask.handle(taskCallBack);
Assert.assertEquals(EXIT_CODE_SUCCESS, emrJobFlowTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, emrJobFlowTask.getExitStatusCode());
}
@Test
@ -153,34 +148,42 @@ public class EmrJobFlowTaskTest {
Mockito.when(cluster.getStatus()).thenReturn(startingStatus, userRequestTerminateStatus);
emrJobFlowTask.handle(taskCallBack);
Assert.assertEquals(EXIT_CODE_KILL, emrJobFlowTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_KILL, emrJobFlowTask.getExitStatusCode());
}
@Test
public void testHandleTerminatedWithError() throws Exception {
Mockito.when(cluster.getStatus()).thenReturn(startingStatus, softwareConfigStatus, runningStatus, terminatedWithErrorsStatus);
Mockito.when(cluster.getStatus()).thenReturn(startingStatus, softwareConfigStatus, runningStatus,
terminatedWithErrorsStatus);
emrJobFlowTask.handle(taskCallBack);
Assert.assertEquals(EXIT_CODE_FAILURE, emrJobFlowTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, emrJobFlowTask.getExitStatusCode());
}
@Test(expected = TaskException.class)
@Test
public void testCanNotParseJson() throws Exception {
Mockito.when(emrJobFlowTask.createRunJobFlowRequest()).thenThrow(new EmrTaskException("can not parse RunJobFlowRequest from json", new Exception("error")));
emrJobFlowTask.handle(taskCallBack);
Mockito.when(emrJobFlowTask.createRunJobFlowRequest())
.thenThrow(new EmrTaskException("can not parse RunJobFlowRequest from json", new Exception("error")));
Assertions.assertThrows(TaskException.class, () -> {
emrJobFlowTask.handle(taskCallBack);
});
}
@Test(expected = TaskException.class)
@Test
public void testClusterStatusNull() throws Exception {
Mockito.when(emrClient.describeCluster(any())).thenReturn(null);
emrJobFlowTask.handle(taskCallBack);
Assertions.assertThrows(TaskException.class, () -> {
emrJobFlowTask.handle(taskCallBack);
});
}
@Test(expected = TaskException.class)
@Test
public void testRunJobFlowError() throws Exception {
Mockito.when(emrClient.runJobFlow(any())).thenThrow(new AmazonElasticMapReduceException("error"), new EmrTaskException());
emrJobFlowTask.handle(taskCallBack);
Mockito.when(emrClient.runJobFlow(any())).thenThrow(new AmazonElasticMapReduceException("error"),
new EmrTaskException());
Assertions.assertThrows(TaskException.class, () -> {
emrJobFlowTask.handle(taskCallBack);
});
}
private String buildEmrTaskParameters() {
@ -197,4 +200,4 @@ public class EmrJobFlowTaskTest {
return JSONUtils.toJsonString(emrParameters);
}
}
}

View File

@ -19,11 +19,12 @@ package org.apache.dolphinscheduler.plugin.task.flink;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import org.junit.Assert;
import org.junit.Test;
import java.util.List;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class FlinkArgsUtilsTest {
private String joinStringListWithSpace(List<String> stringList) {
@ -60,7 +61,7 @@ public class FlinkArgsUtilsTest {
FlinkStreamParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION);
List<String> commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run-application -t yarn-application -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine));
}
@ -69,23 +70,26 @@ public class FlinkArgsUtilsTest {
public void testRunJarInClusterMode() throws Exception {
FlinkStreamParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER);
flinkParameters.setFlinkVersion("1.11");
List<String> commandLine1 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
List<String> commandLine1 =
FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine1));
flinkParameters.setFlinkVersion("<1.10");
List<String> commandLine2 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
List<String> commandLine2 =
FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine2));
flinkParameters.setFlinkVersion(">=1.12");
List<String> commandLine3 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
List<String> commandLine3 =
FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine3));
}
@ -95,7 +99,7 @@ public class FlinkArgsUtilsTest {
FlinkStreamParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.LOCAL);
List<String> commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine));
}
@ -106,27 +110,29 @@ public class FlinkArgsUtilsTest {
flinkParameters.setProgramType(ProgramType.SQL);
List<String> commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals("sql-client.sh -i /tmp/execution/app-id_init.sql -f /tmp/execution/app-id_node.sql",
Assertions.assertEquals("sql-client.sh -i /tmp/execution/app-id_init.sql -f /tmp/execution/app-id_node.sql",
joinStringListWithSpace(commandLine));
}
@Test
public void testInitOptionsInClusterMode() throws Exception {
List<String> initOptions = FlinkArgsUtils.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER));
Assert.assertEquals(2, initOptions.size());
Assert.assertTrue(initOptions.contains("set execution.target=local"));
Assert.assertTrue(initOptions.contains("set parallelism.default=4"));
List<String> initOptions =
FlinkArgsUtils.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER));
Assertions.assertEquals(2, initOptions.size());
Assertions.assertTrue(initOptions.contains("set execution.target=local"));
Assertions.assertTrue(initOptions.contains("set parallelism.default=4"));
}
@Test
public void testInitOptionsInApplicationMode() throws Exception {
List<String> initOptions = FlinkArgsUtils.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION));
Assert.assertEquals(6, initOptions.size());
Assert.assertTrue(initOptions.contains("set execution.target=yarn-per-job"));
Assert.assertTrue(initOptions.contains("set taskmanager.numberOfTaskSlots=4"));
Assert.assertTrue(initOptions.contains("set yarn.application.name=demo-app-name"));
Assert.assertTrue(initOptions.contains("set jobmanager.memory.process.size=1024m"));
Assert.assertTrue(initOptions.contains("set taskmanager.memory.process.size=1024m"));
Assert.assertTrue(initOptions.contains("set parallelism.default=4"));
List<String> initOptions = FlinkArgsUtils
.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION));
Assertions.assertEquals(6, initOptions.size());
Assertions.assertTrue(initOptions.contains("set execution.target=yarn-per-job"));
Assertions.assertTrue(initOptions.contains("set taskmanager.numberOfTaskSlots=4"));
Assertions.assertTrue(initOptions.contains("set yarn.application.name=demo-app-name"));
Assertions.assertTrue(initOptions.contains("set jobmanager.memory.process.size=1024m"));
Assertions.assertTrue(initOptions.contains("set taskmanager.memory.process.size=1024m"));
Assertions.assertTrue(initOptions.contains("set parallelism.default=4"));
}
}

View File

@ -22,14 +22,15 @@ import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import java.util.LinkedList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class FlinkParametersTest {
@Test
public void getResourceFilesList() {
FlinkStreamParameters flinkParameters = new FlinkStreamParameters();
Assert.assertTrue(flinkParameters.getResourceFilesList().isEmpty());
Assertions.assertTrue(flinkParameters.getResourceFilesList().isEmpty());
ResourceInfo mainResource = new ResourceInfo();
mainResource.setRes("testFlinkMain-1.0.0-SNAPSHOT.jar");
@ -42,8 +43,8 @@ public class FlinkParametersTest {
flinkParameters.setResourceList(resourceInfos);
List<ResourceInfo> resourceFilesList = flinkParameters.getResourceFilesList();
Assert.assertNotNull(resourceFilesList);
Assert.assertEquals(2, resourceFilesList.size());
Assertions.assertNotNull(resourceFilesList);
Assertions.assertEquals(2, resourceFilesList.size());
ResourceInfo resourceInfo2 = new ResourceInfo();
resourceInfo2.setRes("testFlinkParameters2.jar");
@ -51,7 +52,7 @@ public class FlinkParametersTest {
flinkParameters.setResourceList(resourceInfos);
resourceFilesList = flinkParameters.getResourceFilesList();
Assert.assertNotNull(resourceFilesList);
Assert.assertEquals(3, resourceFilesList.size());
Assertions.assertNotNull(resourceFilesList);
Assertions.assertEquals(3, resourceFilesList.size());
}
}

View File

@ -19,11 +19,12 @@ package org.apache.dolphinscheduler.plugin.task.flink;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import org.junit.Assert;
import org.junit.Test;
import java.util.List;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class FlinkArgsUtilsTest {
private String joinStringListWithSpace(List<String> stringList) {
@ -60,7 +61,7 @@ public class FlinkArgsUtilsTest {
FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION);
List<String> commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run-application -t yarn-application -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine));
}
@ -69,23 +70,26 @@ public class FlinkArgsUtilsTest {
public void testRunJarInClusterMode() throws Exception {
FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER);
flinkParameters.setFlinkVersion("1.11");
List<String> commandLine1 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
List<String> commandLine1 =
FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine1));
flinkParameters.setFlinkVersion("<1.10");
List<String> commandLine2 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
List<String> commandLine2 =
FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine2));
flinkParameters.setFlinkVersion(">=1.12");
List<String> commandLine3 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
List<String> commandLine3 =
FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine3));
}
@ -95,7 +99,7 @@ public class FlinkArgsUtilsTest {
FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.LOCAL);
List<String> commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals(
Assertions.assertEquals(
"flink run -p 4 -sae -c org.example.Main /opt/job.jar",
joinStringListWithSpace(commandLine));
}
@ -106,27 +110,29 @@ public class FlinkArgsUtilsTest {
flinkParameters.setProgramType(ProgramType.SQL);
List<String> commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters);
Assert.assertEquals("sql-client.sh -i /tmp/execution/app-id_init.sql -f /tmp/execution/app-id_node.sql",
Assertions.assertEquals("sql-client.sh -i /tmp/execution/app-id_init.sql -f /tmp/execution/app-id_node.sql",
joinStringListWithSpace(commandLine));
}
@Test
public void testInitOptionsInClusterMode() throws Exception {
List<String> initOptions = FlinkArgsUtils.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER));
Assert.assertEquals(2, initOptions.size());
Assert.assertTrue(initOptions.contains("set execution.target=local"));
Assert.assertTrue(initOptions.contains("set parallelism.default=4"));
List<String> initOptions =
FlinkArgsUtils.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER));
Assertions.assertEquals(2, initOptions.size());
Assertions.assertTrue(initOptions.contains("set execution.target=local"));
Assertions.assertTrue(initOptions.contains("set parallelism.default=4"));
}
@Test
public void testInitOptionsInApplicationMode() throws Exception {
List<String> initOptions = FlinkArgsUtils.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION));
Assert.assertEquals(6, initOptions.size());
Assert.assertTrue(initOptions.contains("set execution.target=yarn-per-job"));
Assert.assertTrue(initOptions.contains("set taskmanager.numberOfTaskSlots=4"));
Assert.assertTrue(initOptions.contains("set yarn.application.name=demo-app-name"));
Assert.assertTrue(initOptions.contains("set jobmanager.memory.process.size=1024m"));
Assert.assertTrue(initOptions.contains("set taskmanager.memory.process.size=1024m"));
Assert.assertTrue(initOptions.contains("set parallelism.default=4"));
List<String> initOptions = FlinkArgsUtils
.buildInitOptionsForSql(buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION));
Assertions.assertEquals(6, initOptions.size());
Assertions.assertTrue(initOptions.contains("set execution.target=yarn-per-job"));
Assertions.assertTrue(initOptions.contains("set taskmanager.numberOfTaskSlots=4"));
Assertions.assertTrue(initOptions.contains("set yarn.application.name=demo-app-name"));
Assertions.assertTrue(initOptions.contains("set jobmanager.memory.process.size=1024m"));
Assertions.assertTrue(initOptions.contains("set taskmanager.memory.process.size=1024m"));
Assertions.assertTrue(initOptions.contains("set parallelism.default=4"));
}
}

View File

@ -1,57 +1,58 @@
/*
* 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.plugin.task.flink;
import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import java.util.LinkedList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
public class FlinkParametersTest {
@Test
public void getResourceFilesList() {
FlinkParameters flinkParameters = new FlinkParameters();
Assert.assertTrue(flinkParameters.getResourceFilesList().isEmpty());
ResourceInfo mainResource = new ResourceInfo();
mainResource.setRes("testFlinkMain-1.0.0-SNAPSHOT.jar");
flinkParameters.setMainJar(mainResource);
List<ResourceInfo> resourceInfos = new LinkedList<>();
ResourceInfo resourceInfo1 = new ResourceInfo();
resourceInfo1.setRes("testFlinkParameters1.jar");
resourceInfos.add(resourceInfo1);
flinkParameters.setResourceList(resourceInfos);
List<ResourceInfo> resourceFilesList = flinkParameters.getResourceFilesList();
Assert.assertNotNull(resourceFilesList);
Assert.assertEquals(2, resourceFilesList.size());
ResourceInfo resourceInfo2 = new ResourceInfo();
resourceInfo2.setRes("testFlinkParameters2.jar");
resourceInfos.add(resourceInfo2);
flinkParameters.setResourceList(resourceInfos);
resourceFilesList = flinkParameters.getResourceFilesList();
Assert.assertNotNull(resourceFilesList);
Assert.assertEquals(3, resourceFilesList.size());
}
}
/*
* 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.plugin.task.flink;
import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import java.util.LinkedList;
import java.util.List;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class FlinkParametersTest {
@Test
public void getResourceFilesList() {
FlinkParameters flinkParameters = new FlinkParameters();
Assertions.assertTrue(flinkParameters.getResourceFilesList().isEmpty());
ResourceInfo mainResource = new ResourceInfo();
mainResource.setRes("testFlinkMain-1.0.0-SNAPSHOT.jar");
flinkParameters.setMainJar(mainResource);
List<ResourceInfo> resourceInfos = new LinkedList<>();
ResourceInfo resourceInfo1 = new ResourceInfo();
resourceInfo1.setRes("testFlinkParameters1.jar");
resourceInfos.add(resourceInfo1);
flinkParameters.setResourceList(resourceInfos);
List<ResourceInfo> resourceFilesList = flinkParameters.getResourceFilesList();
Assertions.assertNotNull(resourceFilesList);
Assertions.assertEquals(2, resourceFilesList.size());
ResourceInfo resourceInfo2 = new ResourceInfo();
resourceInfo2.setRes("testFlinkParameters2.jar");
resourceInfos.add(resourceInfo2);
flinkParameters.setResourceList(resourceInfos);
resourceFilesList = flinkParameters.getResourceFilesList();
Assertions.assertNotNull(resourceFilesList);
Assertions.assertEquals(3, resourceFilesList.size());
}
}

View File

@ -27,13 +27,13 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class HiveCliTaskTest {
public static final String EXPECTED_HIVE_CLI_TASK_EXECUTE_FROM_SCRIPT_COMMAND =
@ -50,7 +50,7 @@ public class HiveCliTaskTest {
String hiveCliTaskParameters = buildHiveCliTaskExecuteSqlFromScriptParameters();
HiveCliTask hiveCliTask = prepareHiveCliTaskForTest(hiveCliTaskParameters);
hiveCliTask.init();
Assert.assertEquals(hiveCliTask.buildCommand(), EXPECTED_HIVE_CLI_TASK_EXECUTE_FROM_SCRIPT_COMMAND);
Assertions.assertEquals(hiveCliTask.buildCommand(), EXPECTED_HIVE_CLI_TASK_EXECUTE_FROM_SCRIPT_COMMAND);
}
@Test
@ -58,7 +58,7 @@ public class HiveCliTaskTest {
String hiveCliTaskParameters = buildHiveCliTaskExecuteSqlFromFileParameters();
HiveCliTask hiveCliTask = prepareHiveCliTaskForTest(hiveCliTaskParameters);
hiveCliTask.init();
Assert.assertEquals(hiveCliTask.buildCommand(), EXPECTED_HIVE_CLI_TASK_EXECUTE_FROM_FILE_COMMAND);
Assertions.assertEquals(hiveCliTask.buildCommand(), EXPECTED_HIVE_CLI_TASK_EXECUTE_FROM_FILE_COMMAND);
}
@Test
@ -66,7 +66,7 @@ public class HiveCliTaskTest {
String hiveCliTaskParameters = buildHiveCliTaskExecuteWithOptionsParameters();
HiveCliTask hiveCliTask = prepareHiveCliTaskForTest(hiveCliTaskParameters);
hiveCliTask.init();
Assert.assertEquals(hiveCliTask.buildCommand(), EXPECTED_HIVE_CLI_TASK_EXECUTE_WITH_OPTIONS);
Assertions.assertEquals(hiveCliTask.buildCommand(), EXPECTED_HIVE_CLI_TASK_EXECUTE_WITH_OPTIONS);
}
private HiveCliTask prepareHiveCliTaskForTest(final String hiveCliTaskParameters) {

View File

@ -19,13 +19,13 @@ package org.apache.dolphinscheduler.plugin.task.http;
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
/**
* http parameter
*/
public class HttpParametersTest {
public class HttpParametersTest {
@Test
public void testGenerator() {
@ -33,12 +33,12 @@ public class HttpParametersTest {
+ "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\",\"socketTimeout\":\"10000\"}";
HttpParameters httpParameters = JSONUtils.parseObject(paramData, HttpParameters.class);
Assert.assertEquals(10000, httpParameters.getConnectTimeout());
Assert.assertEquals(10000, httpParameters.getSocketTimeout());
Assert.assertEquals("https://www.baidu.com/", httpParameters.getUrl());
Assert.assertEquals(HttpMethod.GET, httpParameters.getHttpMethod());
Assert.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT, httpParameters.getHttpCheckCondition());
Assert.assertEquals("", httpParameters.getCondition());
Assertions.assertEquals(10000, httpParameters.getConnectTimeout());
Assertions.assertEquals(10000, httpParameters.getSocketTimeout());
Assertions.assertEquals("https://www.baidu.com/", httpParameters.getUrl());
Assertions.assertEquals(HttpMethod.GET, httpParameters.getHttpMethod());
Assertions.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT, httpParameters.getHttpCheckCondition());
Assertions.assertEquals("", httpParameters.getCondition());
}
@ -48,13 +48,13 @@ public class HttpParametersTest {
+ "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\",\"socketTimeout\":\"10000\"}";
HttpParameters httpParameters = JSONUtils.parseObject(paramData, HttpParameters.class);
Assert.assertTrue(httpParameters.checkParameters());
Assert.assertEquals(10000,httpParameters.getConnectTimeout());
Assert.assertEquals(10000,httpParameters.getSocketTimeout());
Assert.assertEquals("https://www.baidu.com/",httpParameters.getUrl());
Assert.assertEquals(HttpMethod.GET,httpParameters.getHttpMethod());
Assert.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT,httpParameters.getHttpCheckCondition());
Assert.assertEquals("",httpParameters.getCondition());
Assertions.assertTrue(httpParameters.checkParameters());
Assertions.assertEquals(10000, httpParameters.getConnectTimeout());
Assertions.assertEquals(10000, httpParameters.getSocketTimeout());
Assertions.assertEquals("https://www.baidu.com/", httpParameters.getUrl());
Assertions.assertEquals(HttpMethod.GET, httpParameters.getHttpMethod());
Assertions.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT, httpParameters.getHttpCheckCondition());
Assertions.assertEquals("", httpParameters.getCondition());
}
@ -64,15 +64,15 @@ public class HttpParametersTest {
+ "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\",\"socketTimeout\":\"10000\"}";
HttpParameters httpParameters = JSONUtils.parseObject(paramData, HttpParameters.class);
Assert.assertTrue(httpParameters.checkParameters());
Assert.assertEquals(10000,httpParameters.getConnectTimeout());
Assert.assertEquals(10000,httpParameters.getSocketTimeout());
Assert.assertEquals("https://www.baidu.com/",httpParameters.getUrl());
Assert.assertEquals(HttpMethod.GET,httpParameters.getHttpMethod());
Assert.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT,httpParameters.getHttpCheckCondition());
Assert.assertEquals("",httpParameters.getCondition());
Assert.assertEquals(0,httpParameters.getLocalParametersMap().size());
Assert.assertEquals(0,httpParameters.getResourceFilesList().size());
Assertions.assertTrue(httpParameters.checkParameters());
Assertions.assertEquals(10000, httpParameters.getConnectTimeout());
Assertions.assertEquals(10000, httpParameters.getSocketTimeout());
Assertions.assertEquals("https://www.baidu.com/", httpParameters.getUrl());
Assertions.assertEquals(HttpMethod.GET, httpParameters.getHttpMethod());
Assertions.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT, httpParameters.getHttpCheckCondition());
Assertions.assertEquals("", httpParameters.getCondition());
Assertions.assertEquals(0, httpParameters.getLocalParametersMap().size());
Assertions.assertEquals(0, httpParameters.getResourceFilesList().size());
}
}

View File

@ -39,12 +39,12 @@ import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -52,7 +52,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
/**
* Test HttpTask
*/
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class HttpTaskTest {
private static final String CONTENT_TYPE = "Content-Type";
@ -65,7 +65,7 @@ public class HttpTaskTest {
private final List<MockWebServer> mockWebServers = new ArrayList<>();
@After
@AfterEach
public void after() {
mockWebServers.forEach(IOUtils::closeQuietly);
mockWebServers.clear();
@ -83,18 +83,18 @@ public class HttpTaskTest {
headHttpTask.handle(null);
putHttpTask.handle(null);
deleteHttpTask.handle(null);
Assert.assertEquals(EXIT_CODE_SUCCESS, getHttpTask.getExitStatusCode());
Assert.assertEquals(EXIT_CODE_SUCCESS, postHttpTask.getExitStatusCode());
Assert.assertEquals(EXIT_CODE_SUCCESS, headHttpTask.getExitStatusCode());
Assert.assertEquals(EXIT_CODE_SUCCESS, putHttpTask.getExitStatusCode());
Assert.assertEquals(EXIT_CODE_SUCCESS, deleteHttpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, getHttpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, postHttpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, headHttpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, putHttpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, deleteHttpTask.getExitStatusCode());
}
@Test
public void testHandleCheckCodeDefaultError() throws Exception {
HttpTask getHttpTask = generateHttpTask(HttpMethod.GET, HttpStatus.SC_BAD_REQUEST);
getHttpTask.handle(null);
Assert.assertEquals(EXIT_CODE_FAILURE, getHttpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, getHttpTask.getExitStatusCode());
}
@Test
@ -106,8 +106,8 @@ public class HttpTaskTest {
condition, HttpStatus.SC_OK, "");
httpTask.handle(null);
httpErrorTask.handle(null);
Assert.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assert.assertEquals(EXIT_CODE_FAILURE, httpErrorTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, httpErrorTask.getExitStatusCode());
}
@Test
@ -118,8 +118,8 @@ public class HttpTaskTest {
"success", HttpStatus.SC_OK, "{\"status\": \"failed\"}");
httpTask.handle(null);
httpErrorTask.handle(null);
Assert.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assert.assertEquals(EXIT_CODE_FAILURE, httpErrorTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, httpErrorTask.getExitStatusCode());
}
@Test
@ -130,8 +130,8 @@ public class HttpTaskTest {
"failed", HttpStatus.SC_OK, "{\"status\": \"failed\"}");
httpTask.handle(null);
httpErrorTask.handle(null);
Assert.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assert.assertEquals(EXIT_CODE_FAILURE, httpErrorTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, httpErrorTask.getExitStatusCode());
}
@Test
@ -151,7 +151,7 @@ public class HttpTaskTest {
httpParams, prepareParamsMap, HttpCheckCondition.BODY_CONTAINS, "20220812",
HttpStatus.SC_OK, "");
httpTask.handle(null);
Assert.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
}
@Test
@ -171,7 +171,7 @@ public class HttpTaskTest {
httpParams, prepareParamsMap, HttpCheckCondition.BODY_CONTAINS, "20220812",
HttpStatus.SC_OK, "");
httpTask.handle(null);
Assert.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode());
}
private String withMockWebServer(String path, int actualResponseCode,

View File

@ -22,6 +22,7 @@ import static org.apache.dolphinscheduler.plugin.task.api.enums.Direct.IN;
import static org.apache.dolphinscheduler.plugin.task.java.JavaConstants.RUN_TYPE_JAR;
import static org.apache.dolphinscheduler.plugin.task.java.JavaConstants.RUN_TYPE_JAVA;
import org.apache.dolphinscheduler.plugin.task.api.TaskCallBack;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
import org.apache.dolphinscheduler.plugin.task.api.model.Property;
import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
@ -38,15 +39,19 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class JavaTaskTest {
private TaskCallBack taskCallBack = (taskInstanceId, appIds) -> {
};
@Test
public void testGetPubllicClassName(){
public void testGetPubllicClassName() {
JavaTask javaTask = runJavaType();
Assert.assertEquals(javaTask.getPublicClassName("import java.io.IOException;\n" +
Assertions.assertEquals(javaTask.getPublicClassName("import java.io.IOException;\n" +
"public class JavaTaskTest {\n" +
" public static void main(String[] args) throws IOException {\n" +
" StringBuilder builder = new StringBuilder(\"Hello: \");\n" +
@ -67,7 +72,7 @@ public class JavaTaskTest {
public void buildJarCommand() {
String homeBinPath = JavaConstants.JAVA_HOME_VAR + File.separator + "bin" + File.separator;
JavaTask javaTask = runJarType();
Assert.assertEquals(javaTask.buildJarCommand(), homeBinPath
Assertions.assertEquals(javaTask.buildJarCommand(), homeBinPath
+ "java --class-path .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar -jar /tmp/dolphinscheduler/test/executepath/opt/share/jar/main.jar -host 127.0.0.1 -port 8080 -xms:50m");
}
@ -81,7 +86,7 @@ public class JavaTaskTest {
JavaTask javaTask = runJavaType();
String sourceCode = javaTask.buildJavaSourceContent();
String publicClassName = javaTask.getPublicClassName(sourceCode);
Assert.assertEquals("JavaTaskTest", publicClassName);
Assertions.assertEquals("JavaTaskTest", publicClassName);
String fileName = javaTask.buildJavaSourceCodeFileFullName(publicClassName);
try {
String homeBinPath = JavaConstants.JAVA_HOME_VAR + File.separator + "bin" + File.separator;
@ -89,8 +94,8 @@ public class JavaTaskTest {
if (Files.exists(path)) {
Files.delete(path);
}
Assert.assertEquals(homeBinPath
+ "javac --class-path .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar /tmp/dolphinscheduler/test/executepath/JavaTaskTest.java",
Assertions.assertEquals(homeBinPath
+ "javac --class-path .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar /tmp/dolphinscheduler/test/executepath/JavaTaskTest.java",
javaTask.buildJavaCompileCommand(sourceCode));
} finally {
Path path = Paths.get(fileName);
@ -108,17 +113,18 @@ public class JavaTaskTest {
**/
@Test
public void buildJavaCommand() throws Exception {
String wantJavaCommand = "${JAVA_HOME}/bin/javac --class-path .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar /tmp/dolphinscheduler/test/executepath/JavaTaskTest.java;${JAVA_HOME}/bin/java --class-path .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar JavaTaskTest -host 127.0.0.1 -port 8080 -xms:50m";
String wantJavaCommand =
"${JAVA_HOME}/bin/javac --class-path .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar /tmp/dolphinscheduler/test/executepath/JavaTaskTest.java;${JAVA_HOME}/bin/java --class-path .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar JavaTaskTest -host 127.0.0.1 -port 8080 -xms:50m";
JavaTask javaTask = runJavaType();
String sourceCode = javaTask.buildJavaSourceContent();
String publicClassName = javaTask.getPublicClassName(sourceCode);
Assert.assertEquals("JavaTaskTest", publicClassName);
Assertions.assertEquals("JavaTaskTest", publicClassName);
String fileName = javaTask.buildJavaSourceCodeFileFullName(publicClassName);
Path path = Paths.get(fileName);
if (Files.exists(path)) {
Files.delete(path);
}
Assert.assertEquals(wantJavaCommand, javaTask.buildJavaCommand());
Assertions.assertEquals(wantJavaCommand, javaTask.buildJavaCommand());
}
/**
@ -126,25 +132,28 @@ public class JavaTaskTest {
* @return void
* @throws IOException
**/
@Test(expected = JavaSourceFileExistException.class)
public void coverJavaSourceFileExistException() throws IOException {
@Test
public void coverJavaSourceFileExistException() throws IOException {
JavaTask javaTask = runJavaType();
String sourceCode = javaTask.buildJavaSourceContent();
String publicClassName = javaTask.getPublicClassName(sourceCode);
Assert.assertEquals("JavaTaskTest", publicClassName);
Assertions.assertEquals("JavaTaskTest", publicClassName);
String fileName = javaTask.buildJavaSourceCodeFileFullName(publicClassName);
try {
Path path = Paths.get(fileName);
if (!Files.exists(path)) {
Files.createDirectories(path);
Assertions.assertThrows(JavaSourceFileExistException.class, () -> {
try {
Path path = Paths.get(fileName);
if (!Files.exists(path)) {
Files.createDirectories(path);
}
javaTask.createJavaSourceFileIfNotExists(sourceCode, fileName);
} finally {
Path path = Paths.get(fileName);
if (Files.exists(path)) {
Files.delete(path);
}
}
javaTask.createJavaSourceFileIfNotExists(sourceCode,fileName);
} finally {
Path path = Paths.get(fileName);
if (Files.exists(path)) {
Files.delete(path);
}
}
});
}
/**
@ -152,10 +161,12 @@ public class JavaTaskTest {
*
* @return void
**/
@Test(expected = PublicClassNotFoundException.class)
public void coverPublicClassNotFoundException() {
JavaTask javaTask = runJavaType();
javaTask.getPublicClassName("");
@Test
public void coverPublicClassNotFoundException() {
Assertions.assertThrows(PublicClassNotFoundException.class, () -> {
JavaTask javaTask = runJavaType();
javaTask.getPublicClassName("");
});
}
/**
@ -164,14 +175,17 @@ public class JavaTaskTest {
* @return void
* @throws Exception
**/
@Test(expected = RunTypeNotFoundException.class)
public void coverRunTypeNotFoundException() throws Exception {
@Test
public void coverRunTypeNotFoundException() throws Exception {
JavaTask javaTask = runJavaType();
Field javaParameters = JavaTask.class.getDeclaredField("javaParameters");
javaParameters.setAccessible(true);
((JavaParameters)(javaParameters.get(javaTask))).setRunType("");
javaTask.handle();
javaTask.getPublicClassName("");
((JavaParameters) (javaParameters.get(javaTask))).setRunType("");
Assertions.assertThrows(RunTypeNotFoundException.class, () -> {
javaTask.handle(taskCallBack);
javaTask.getPublicClassName("");
});
}
/**
@ -194,7 +208,7 @@ public class JavaTaskTest {
resourceInfoArrayList.add(resourceJar);
javaParameters.setResourceList(resourceInfoArrayList);
javaParameters.setRawScript(
"import java.io.IOException;\n" +
"import java.io.IOException;\n" +
"public class JavaTaskTest {\n" +
" public static void main(String[] args) throws IOException {\n" +
" StringBuilder builder = new StringBuilder(\"Hello: \");\n" +

View File

@ -25,13 +25,13 @@ import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
import org.apache.dolphinscheduler.spi.utils.DateUtils;
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class JupyterTaskTest {
private static final String EXPECTED_JUPYTER_TASK_COMMAND_USE_LOCAL_CONDA_ENV =
@ -93,7 +93,7 @@ public class JupyterTaskTest {
String jupyterTaskParameters = buildJupyterTaskUseLocalCondaEnvCommand();
JupyterTask jupyterTask = prepareJupyterTaskForTest(jupyterTaskParameters);
jupyterTask.init();
Assert.assertEquals(jupyterTask.buildCommand(), EXPECTED_JUPYTER_TASK_COMMAND_USE_LOCAL_CONDA_ENV);
Assertions.assertEquals(jupyterTask.buildCommand(), EXPECTED_JUPYTER_TASK_COMMAND_USE_LOCAL_CONDA_ENV);
}
@Test
@ -101,7 +101,7 @@ public class JupyterTaskTest {
String jupyterTaskParameters = buildJupyterTaskUsePackedCondaEnvCommand();
JupyterTask jupyterTask = prepareJupyterTaskForTest(jupyterTaskParameters);
jupyterTask.init();
Assert.assertEquals(jupyterTask.buildCommand(), EXPECTED_JUPYTER_TASK_COMMAND_USE_PACKED_CONDA_ENV);
Assertions.assertEquals(jupyterTask.buildCommand(), EXPECTED_JUPYTER_TASK_COMMAND_USE_PACKED_CONDA_ENV);
}
@Test
@ -111,7 +111,7 @@ public class JupyterTaskTest {
Mockito.mockStatic(DateUtils.class);
when(DateUtils.getTimestampString()).thenReturn("123456789");
jupyterTask.init();
Assert.assertEquals(jupyterTask.buildCommand(), EXPECTED_JUPYTER_TASK_COMMAND_USE_PIP_REQUIREMENTS);
Assertions.assertEquals(jupyterTask.buildCommand(), EXPECTED_JUPYTER_TASK_COMMAND_USE_PIP_REQUIREMENTS);
}
private JupyterTask prepareJupyterTaskForTest(final String jupyterTaskParameters) {

View File

@ -16,20 +16,22 @@
*/
package org.apache.dolphinscheduler.plugin.task.k8s;
import org.apache.dolphinscheduler.plugin.task.api.parameters.K8sTaskParameters;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class K8sParametersTest {
private K8sTaskParameters k8sTaskParameters = null;
private final String image = "ds-dev";
private final String namespace = "{\"name\":\"default\",\"cluster\":\"lab\"}";
private final double minCpuCores = 2;
private final double minMemorySpace = 10;
@Before
@BeforeEach
public void before() {
k8sTaskParameters = new K8sTaskParameters();
k8sTaskParameters.setImage(image);
@ -40,21 +42,21 @@ public class K8sParametersTest {
@Test
public void testCheckParameterNormal() {
Assert.assertTrue(k8sTaskParameters.checkParameters());
Assertions.assertTrue(k8sTaskParameters.checkParameters());
}
@Test
public void testGetResourceFilesListNormal() {
Assert.assertNotNull(k8sTaskParameters.getResourceFilesList());
Assert.assertEquals(0, k8sTaskParameters.getResourceFilesList().size());
Assertions.assertNotNull(k8sTaskParameters.getResourceFilesList());
Assertions.assertEquals(0, k8sTaskParameters.getResourceFilesList().size());
}
@Test
public void testK8sParameters() {
Assert.assertEquals(image, k8sTaskParameters.getImage());
Assert.assertEquals(namespace, k8sTaskParameters.getNamespace());
Assert.assertEquals(0, Double.compare(minCpuCores, k8sTaskParameters.getMinCpuCores()));
Assert.assertEquals(0,Double.compare(minMemorySpace, k8sTaskParameters.getMinMemorySpace()));
Assertions.assertEquals(image, k8sTaskParameters.getImage());
Assertions.assertEquals(namespace, k8sTaskParameters.getNamespace());
Assertions.assertEquals(0, Double.compare(minCpuCores, k8sTaskParameters.getMinCpuCores()));
Assertions.assertEquals(0, Double.compare(minMemorySpace, k8sTaskParameters.getMinMemorySpace()));
}
}

View File

@ -27,11 +27,12 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class K8sTaskTest {
private K8sTaskParameters k8sTaskParameters = null;
private K8sTask k8sTask = null;
@ -47,7 +48,7 @@ public class K8sTaskTest {
private final String DAY = "day";
private final String date = "20220507";
@Before
@BeforeEach
public void before() {
k8sTaskParameters = new K8sTaskParameters();
k8sTaskParameters.setImage(image);
@ -64,7 +65,7 @@ public class K8sTaskTest {
property.setType(DataType.VARCHAR);
property.setValue(date);
Map<String, Property> paramsMap = new HashMap<>();
paramsMap.put(DAY,property);
paramsMap.put(DAY, property);
taskRequest.setParamsMap(paramsMap);
Map<String, Property> prepareParamsMap = new HashMap<>();
@ -78,16 +79,18 @@ public class K8sTaskTest {
@Test
public void testBuildCommandNormal() {
String expectedStr = "{\"image\":\"ds-dev\",\"namespaceName\":\"default\",\"clusterName\":\"lab\",\"minCpuCores\":2.0,\"minMemorySpace\":10.0,\"paramsMap\":{\"day\":\"20220507\"}}";
String expectedStr =
"{\"image\":\"ds-dev\",\"namespaceName\":\"default\",\"clusterName\":\"lab\",\"minCpuCores\":2.0,\"minMemorySpace\":10.0,\"paramsMap\":{\"day\":\"20220507\"}}";
String commandStr = k8sTask.buildCommand();
Assert.assertEquals(expectedStr, commandStr);
Assertions.assertEquals(expectedStr, commandStr);
}
@Test
public void testGetParametersNormal() {
String expectedStr = "K8sTaskParameters{image='ds-dev', namespace='{\"name\":\"default\",\"cluster\":\"lab\"}', minCpuCores=2.0, minMemorySpace=10.0}";
String expectedStr =
"K8sTaskParameters{image='ds-dev', namespace='{\"name\":\"default\",\"cluster\":\"lab\"}', minCpuCores=2.0, minMemorySpace=10.0}";
String result = k8sTask.getParameters().toString();
Assert.assertEquals(expectedStr, result);
Assertions.assertEquals(expectedStr, result);
}
}

View File

@ -25,29 +25,31 @@ import org.apache.dolphinscheduler.plugin.task.mlflow.MlflowTask;
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class MlflowTaskTest {
private static final Logger logger = LoggerFactory.getLogger(MlflowTask.class);
private MockedStatic<PropertyUtils> propertyUtilsMockedStatic;
@Before
@BeforeEach
public void init() {
propertyUtilsMockedStatic = Mockito.mockStatic(PropertyUtils.class);
propertyUtilsMockedStatic.when(() -> PropertyUtils.getString(MlflowConstants.PRESET_REPOSITORY_VERSION_KEY)).thenReturn("main");
propertyUtilsMockedStatic.when(() -> PropertyUtils.getString(MlflowConstants.PRESET_REPOSITORY_VERSION_KEY))
.thenReturn("main");
}
@After
@AfterEach
public void clean() {
propertyUtilsMockedStatic.close();
}
@ -62,60 +64,66 @@ public class MlflowTaskTest {
@Test
public void testGetPresetRepositoryData() {
Assert.assertEquals("https://github.com/apache/dolphinscheduler-mlflow", MlflowTask.getPresetRepository());
Assertions.assertEquals("https://github.com/apache/dolphinscheduler-mlflow", MlflowTask.getPresetRepository());
Assert.assertEquals("main", MlflowTask.getPresetRepositoryVersion());
Assertions.assertEquals("main", MlflowTask.getPresetRepositoryVersion());
String definedRepository = "https://github.com/<MY-ID>/dolphinscheduler-mlflow";
Mockito.when(PropertyUtils.getString(MlflowConstants.PRESET_REPOSITORY_KEY)).thenAnswer(invocation -> definedRepository);
Assert.assertEquals(definedRepository, MlflowTask.getPresetRepository());
Mockito.when(PropertyUtils.getString(MlflowConstants.PRESET_REPOSITORY_KEY))
.thenAnswer(invocation -> definedRepository);
Assertions.assertEquals(definedRepository, MlflowTask.getPresetRepository());
String definedRepositoryVersion = "dev";
Mockito.when(PropertyUtils.getString(MlflowConstants.PRESET_REPOSITORY_VERSION_KEY)).thenAnswer(invocation -> definedRepositoryVersion);
Assert.assertEquals(definedRepositoryVersion, MlflowTask.getPresetRepositoryVersion());
Mockito.when(PropertyUtils.getString(MlflowConstants.PRESET_REPOSITORY_VERSION_KEY))
.thenAnswer(invocation -> definedRepositoryVersion);
Assertions.assertEquals(definedRepositoryVersion, MlflowTask.getPresetRepositoryVersion());
}
@Test
public void testGetVersionString() {
Assert.assertEquals("--version=main", MlflowTask.getVersionString("main", "https://github.com/apache/dolphinscheduler-mlflow"));
Assert.assertEquals("--version=master", MlflowTask.getVersionString("master", "https://github.com/apache/dolphinscheduler-mlflow"));
Assert.assertEquals("--version=main", MlflowTask.getVersionString("main", "git@github.com:apache/dolphinscheduler-mlflow.git"));
Assert.assertEquals("--version=master", MlflowTask.getVersionString("master", "git@github.com:apache/dolphinscheduler-mlflow.git"));
Assert.assertEquals("", MlflowTask.getVersionString("main", "/tmp/dolphinscheduler-mlflow"));
Assert.assertEquals("", MlflowTask.getVersionString("master", "/tmp/dolphinscheduler-mlflow"));
Assertions.assertEquals("--version=main",
MlflowTask.getVersionString("main", "https://github.com/apache/dolphinscheduler-mlflow"));
Assertions.assertEquals("--version=master",
MlflowTask.getVersionString("master", "https://github.com/apache/dolphinscheduler-mlflow"));
Assertions.assertEquals("--version=main",
MlflowTask.getVersionString("main", "git@github.com:apache/dolphinscheduler-mlflow.git"));
Assertions.assertEquals("--version=master",
MlflowTask.getVersionString("master", "git@github.com:apache/dolphinscheduler-mlflow.git"));
Assertions.assertEquals("", MlflowTask.getVersionString("main", "/tmp/dolphinscheduler-mlflow"));
Assertions.assertEquals("", MlflowTask.getVersionString("master", "/tmp/dolphinscheduler-mlflow"));
}
@Test
public void testInitBasicAlgorithmTask() {
MlflowTask mlflowTask = initTask(createBasicAlgorithmParameters());
Assert.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "data_path=/data/iris.csv\n"
+ "repo=https://github.com/apache/dolphinscheduler-mlflow#Project-BasicAlgorithm\n"
+ "mlflow run $repo "
+ "-P algorithm=xgboost "
+ "-P data_path=$data_path "
+ "-P params=\"n_estimators=100\" "
+ "-P search_params=\"\" "
+ "-P model_name=\"BasicAlgorithm\" "
+ "--experiment-name=\"BasicAlgorithm\" "
+ "--version=main");
Assertions.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "data_path=/data/iris.csv\n"
+ "repo=https://github.com/apache/dolphinscheduler-mlflow#Project-BasicAlgorithm\n"
+ "mlflow run $repo "
+ "-P algorithm=xgboost "
+ "-P data_path=$data_path "
+ "-P params=\"n_estimators=100\" "
+ "-P search_params=\"\" "
+ "-P model_name=\"BasicAlgorithm\" "
+ "--experiment-name=\"BasicAlgorithm\" "
+ "--version=main");
}
@Test
public void testInitAutoMLTask() {
MlflowTask mlflowTask = initTask(createAutoMLParameters());
Assert.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "data_path=/data/iris.csv\n"
+ "repo=https://github.com/apache/dolphinscheduler-mlflow#Project-AutoML\n"
+ "mlflow run $repo "
+ "-P tool=autosklearn "
+ "-P data_path=$data_path "
+ "-P params=\"time_left_for_this_task=30\" "
+ "-P model_name=\"AutoML\" "
+ "--experiment-name=\"AutoML\" "
+ "--version=main");
Assertions.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "data_path=/data/iris.csv\n"
+ "repo=https://github.com/apache/dolphinscheduler-mlflow#Project-AutoML\n"
+ "mlflow run $repo "
+ "-P tool=autosklearn "
+ "-P data_path=$data_path "
+ "-P params=\"time_left_for_this_task=30\" "
+ "-P model_name=\"AutoML\" "
+ "--experiment-name=\"AutoML\" "
+ "--version=main");
}
@Test
@ -123,58 +131,58 @@ public class MlflowTaskTest {
MlflowTask mlflowTask = initTask(createCustomProjectParameters());
// Version will be set if parameter.mlflowProjectVersion is empty
Assert.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "repo=https://github.com/mlflow/mlflow#examples/xgboost/xgboost_native\n"
+ "mlflow run $repo "
+ "-P learning_rate=0.2 "
+ "-P colsample_bytree=0.8 "
+ "-P subsample=0.9 "
+ "--experiment-name=\"custom_project\"");
Assertions.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "repo=https://github.com/mlflow/mlflow#examples/xgboost/xgboost_native\n"
+ "mlflow run $repo "
+ "-P learning_rate=0.2 "
+ "-P colsample_bytree=0.8 "
+ "-P subsample=0.9 "
+ "--experiment-name=\"custom_project\"");
// Version will be set if repository is remote path
mlflowTask.getParameters().setMlflowProjectVersion("dev");
Assert.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "repo=https://github.com/mlflow/mlflow#examples/xgboost/xgboost_native\n"
+ "mlflow run $repo "
+ "-P learning_rate=0.2 "
+ "-P colsample_bytree=0.8 "
+ "-P subsample=0.9 "
+ "--experiment-name=\"custom_project\" "
+ "--version=dev");
Assertions.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "repo=https://github.com/mlflow/mlflow#examples/xgboost/xgboost_native\n"
+ "mlflow run $repo "
+ "-P learning_rate=0.2 "
+ "-P colsample_bytree=0.8 "
+ "-P subsample=0.9 "
+ "--experiment-name=\"custom_project\" "
+ "--version=dev");
// Version will not be set if repository is local path
mlflowTask.getParameters().setMlflowProjectRepository("/tmp/dolphinscheduler-mlflow");
Assert.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "repo=/tmp/dolphinscheduler-mlflow\n"
+ "mlflow run $repo "
+ "-P learning_rate=0.2 "
+ "-P colsample_bytree=0.8 "
+ "-P subsample=0.9 "
+ "--experiment-name=\"custom_project\"");
Assertions.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "repo=/tmp/dolphinscheduler-mlflow\n"
+ "mlflow run $repo "
+ "-P learning_rate=0.2 "
+ "-P colsample_bytree=0.8 "
+ "-P subsample=0.9 "
+ "--experiment-name=\"custom_project\"");
}
@Test
public void testModelsDeployMlflow() {
MlflowTask mlflowTask = initTask(createModelDeplyMlflowParameters());
Assert.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "mlflow models serve -m models:/model/1 --port 7000 -h 0.0.0.0");
Assertions.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "mlflow models serve -m models:/model/1 --port 7000 -h 0.0.0.0");
}
@Test
public void testModelsDeployDocker() {
MlflowTask mlflowTask = initTask(createModelDeplyDockerParameters());
Assert.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "mlflow models build-docker -m models:/model/1 -n mlflow/model:1 --enable-mlserver\n"
+ "docker rm -f ds-mlflow-model-1\n"
+ "docker run -d --name=ds-mlflow-model-1 -p=7000:8080 "
+ "--health-cmd \"curl --fail http://127.0.0.1:8080/ping || exit 1\" --health-interval 5s --health-retries 20 "
+ "mlflow/model:1");
Assertions.assertEquals(mlflowTask.buildCommand(),
"export MLFLOW_TRACKING_URI=http://127.0.0.1:5000\n"
+ "mlflow models build-docker -m models:/model/1 -n mlflow/model:1 --enable-mlserver\n"
+ "docker rm -f ds-mlflow-model-1\n"
+ "docker run -d --name=ds-mlflow-model-1 -p=7000:8080 "
+ "--health-cmd \"curl --fail http://127.0.0.1:8080/ping || exit 1\" --health-interval 5s --health-retries 20 "
+ "mlflow/model:1");
}
private MlflowTask initTask(MlflowParameters mlflowParameters) {

View File

@ -25,12 +25,14 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
public class OpenmldbTaskTest {
static class MockOpenmldbTask extends OpenmldbTask {
/**
* constructor
*
@ -55,7 +57,7 @@ public class OpenmldbTaskTest {
OpenmldbTask openmldbTask = createOpenmldbTask();
String pythonFile = "test.py";
String result1 = openmldbTask.buildPythonExecuteCommand(pythonFile);
Assert.assertEquals("python3 test.py", result1);
Assertions.assertEquals("python3 test.py", result1);
}
@Test
@ -74,21 +76,20 @@ public class OpenmldbTaskTest {
OpenmldbTask openmldbTask = new OpenmldbTask(taskExecutionContext);
openmldbTask.init();
OpenmldbParameters internal = (OpenmldbParameters) openmldbTask.getParameters();
Assert.assertNotNull(internal);
Assert.assertEquals(internal.getExecuteMode(), "offline");
Assertions.assertNotNull(internal);
Assertions.assertEquals(internal.getExecuteMode(), "offline");
String result1 = openmldbTask.buildPythonScriptContent();
Assert.assertEquals("import openmldb\n"
+ "import sqlalchemy as db\n"
+ "engine = db.create_engine('openmldb:///?zk=localhost:2181&zkPath=dolphinscheduler')\n"
+ "con = engine.connect()\n"
+ "con.execute(\"set @@execute_mode='offline';\")\n"
+ "con.execute(\"set @@sync_job=true\")\n"
+ "con.execute(\"set @@job_timeout=1800000\")\n"
+ "con.execute(\"select * from users\\n-- some comment\\ninner join order on users.order_id = "
+ "order.id\")\n"
+ "con.execute(\"select * from users\")\n"
, result1);
Assertions.assertEquals("import openmldb\n"
+ "import sqlalchemy as db\n"
+ "engine = db.create_engine('openmldb:///?zk=localhost:2181&zkPath=dolphinscheduler')\n"
+ "con = engine.connect()\n"
+ "con.execute(\"set @@execute_mode='offline';\")\n"
+ "con.execute(\"set @@sync_job=true\")\n"
+ "con.execute(\"set @@job_timeout=1800000\")\n"
+ "con.execute(\"select * from users\\n-- some comment\\ninner join order on users.order_id = "
+ "order.id\")\n"
+ "con.execute(\"select * from users\")\n", result1);
}
}
}

View File

@ -22,21 +22,20 @@ import static com.github.dreamhead.moco.MocoJsonRunner.jsonHttpServer;
import static com.github.dreamhead.moco.Runner.running;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
import org.apache.dolphinscheduler.plugin.task.api.enums.TaskExecutionStatus;
import org.apache.commons.io.IOUtils;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import org.apache.dolphinscheduler.plugin.task.api.enums.TaskExecutionStatus;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -50,7 +49,7 @@ public class PigeonTaskTest {
private TaskExecutionContext taskExecutionContext;
@Before
@BeforeEach
public void before() throws Exception {
String taskParams = "{\"targetJobName\":\"mysql_elastic\"}";
@ -80,22 +79,22 @@ public class PigeonTaskTest {
public void testGetTISConfigParams() {
PigeonConfig cfg = PigeonConfig.getInstance();
String tisHost = "127.0.0.1:8080";
Assert.assertEquals("http://127.0.0.1:8080/tjs/coredefine/coredefine.ajax", cfg.getJobTriggerUrl(tisHost));
Assertions.assertEquals("http://127.0.0.1:8080/tjs/coredefine/coredefine.ajax", cfg.getJobTriggerUrl(tisHost));
String jobName = "mysql_elastic";
int taskId = 123;
Assert.assertEquals(
Assertions.assertEquals(
"ws://" + tisHost + "/tjs/download/logfeedback?logtype=full&collection=mysql_elastic&taskid=" + taskId,
cfg.getJobLogsFetchUrl(tisHost, jobName, taskId));
Assert.assertEquals("action=datax_action&emethod=trigger_fullbuild_task", cfg.getJobTriggerPostBody());
Assertions.assertEquals("action=datax_action&emethod=trigger_fullbuild_task", cfg.getJobTriggerPostBody());
Assert.assertEquals(
Assertions.assertEquals(
"http://127.0.0.1:8080/tjs/config/config.ajax?action=collection_action&emethod=get_task_status",
cfg.getJobStatusUrl(tisHost));
Assert.assertEquals("{\n taskid: " + taskId + "\n, log: false }", cfg.getJobStatusPostBody(taskId));
Assertions.assertEquals("{\n taskid: " + taskId + "\n, log: false }", cfg.getJobStatusPostBody(taskId));
Assert.assertEquals("action=core_action&event_submit_do_cancel_task=y&taskid=" + taskId,
Assertions.assertEquals("action=core_action&event_submit_do_cancel_task=y&taskid=" + taskId,
cfg.getJobCancelPostBody(taskId));
}
@ -104,7 +103,7 @@ public class PigeonTaskTest {
try {
pigeonTask.init();
} catch (Exception e) {
Assert.fail(e.getMessage());
Assertions.fail(e.getMessage());
}
}
@ -116,7 +115,7 @@ public class PigeonTaskTest {
running(server, () -> {
pigeonTask.handle(null);
Assert.assertEquals("PIGEON execute be success", TaskExecutionStatus.SUCCESS, pigeonTask.getExitStatus());
Assertions.assertEquals(TaskExecutionStatus.SUCCESS, pigeonTask.getExitStatus());
});
}
@ -137,7 +136,7 @@ public class PigeonTaskTest {
// try {
// tisTask.cancelApplication(true);
// } catch (Exception e) {
// Assert.fail(e.getMessage());
// Assertions.fail(e.getMessage());
// }
// }

View File

@ -17,18 +17,18 @@
package org.apache.dolphinscheduler.plugin.task.python;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class PythonTaskTest {
@Test
public void buildPythonExecuteCommand() throws Exception {
PythonTask pythonTask = createPythonTask();
Assert.assertEquals("${PYTHON_HOME} test.py", pythonTask.buildPythonExecuteCommand("test.py"));
Assertions.assertEquals("${PYTHON_HOME} test.py", pythonTask.buildPythonExecuteCommand("test.py"));
}
private PythonTask createPythonTask() {
return new PythonTask(null);
}
}
}

View File

@ -18,13 +18,10 @@
package org.apache.dolphinscheduler.plugin.task.pytorch;
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.RWXR_XR_X;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContextCacheManager;
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
import org.apache.commons.lang3.SystemUtils;
@ -36,18 +33,16 @@ import java.nio.file.Paths;
import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Date;
import java.util.Set;
import java.util.UUID;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class PytorchTaskTest {
private final String pythonPath = ".";
@ -60,37 +55,42 @@ public class PytorchTaskTest {
envManager.setPythonEnvTool(PythonEnvManager.ENV_TOOL_CONDA);
envManager.setCondaPythonVersion("3.9");
String condaEnvCommand39 = envManager.getBuildEnvCommand(requirementPath);
Assert.assertEquals(condaEnvCommand39, "conda create -y python=3.9 -p ./venv && source activate ./venv && ./venv/bin/python -m pip install -r " + requirementPath);
Assertions.assertEquals(condaEnvCommand39,
"conda create -y python=3.9 -p ./venv && source activate ./venv && ./venv/bin/python -m pip install -r "
+ requirementPath);
envManager.setCondaPythonVersion("3.8");
String condaEnvCommand38 = envManager.getBuildEnvCommand(requirementPath);
Assert.assertEquals(condaEnvCommand38, "conda create -y python=3.8 -p ./venv && source activate ./venv && ./venv/bin/python -m pip install -r " + requirementPath);
Assertions.assertEquals(condaEnvCommand38,
"conda create -y python=3.8 -p ./venv && source activate ./venv && ./venv/bin/python -m pip install -r "
+ requirementPath);
envManager.setPythonEnvTool(PythonEnvManager.ENV_TOOL_VENV);
String venvEnvCommand = envManager.getBuildEnvCommand(requirementPath);
Assert.assertEquals(venvEnvCommand, "virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r " + requirementPath);
Assertions.assertEquals(venvEnvCommand,
"virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r "
+ requirementPath);
}
@Test
public void testGitProject() {
assertFalse(GitProjectManager.isGitPath("dolphinscheduler/test"));
assertFalse(GitProjectManager.isGitPath("/dolphinscheduler/test"));
assertTrue(GitProjectManager.isGitPath("https://github.com/apache/dolphinscheduler.git"));
assertTrue(GitProjectManager.isGitPath("git@github.com:apache/dolphinscheduler.git"));
assertTrue(GitProjectManager.isGitPath("git@github.com:apache/dolphinscheduler.git#doc"));
Assertions.assertFalse(GitProjectManager.isGitPath("dolphinscheduler/test"));
Assertions.assertFalse(GitProjectManager.isGitPath("/dolphinscheduler/test"));
Assertions.assertTrue(GitProjectManager.isGitPath("https://github.com/apache/dolphinscheduler.git"));
Assertions.assertTrue(GitProjectManager.isGitPath("git@github.com:apache/dolphinscheduler.git"));
Assertions.assertTrue(GitProjectManager.isGitPath("git@github.com:apache/dolphinscheduler.git#doc"));
GitProjectManager gpm1 = new GitProjectManager();
gpm1.setPath("git@github.com:apache/dolphinscheduler.git#doc");
Assert.assertEquals("git@github.com:apache/dolphinscheduler.git", gpm1.getGitUrl());
Assert.assertEquals("./GIT_PROJECT/doc", gpm1.getGitLocalPath());
Assertions.assertEquals("git@github.com:apache/dolphinscheduler.git", gpm1.getGitUrl());
Assertions.assertEquals("./GIT_PROJECT/doc", gpm1.getGitLocalPath());
GitProjectManager gpm2 = new GitProjectManager();
gpm2.setPath("git@github.com:apache/dolphinscheduler.git");
Assert.assertEquals("git@github.com:apache/dolphinscheduler.git", gpm2.getGitUrl());
Assert.assertEquals("./GIT_PROJECT", gpm2.getGitLocalPath());
Assertions.assertEquals("git@github.com:apache/dolphinscheduler.git", gpm2.getGitUrl());
Assertions.assertEquals("./GIT_PROJECT", gpm2.getGitLocalPath());
}
@ -101,25 +101,24 @@ public class PytorchTaskTest {
parameters.setScriptParams("--epochs=1 --dry-run");
PytorchTask task1 = initTask(parameters);
Assert.assertEquals(task1.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"${PYTHON_HOME} main.py --epochs=1 --dry-run");
Assertions.assertEquals(task1.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"${PYTHON_HOME} main.py --epochs=1 --dry-run");
parameters.setPythonCommand("");
PytorchTask task2 = initTask(parameters);
Assert.assertEquals(task2.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"${PYTHON_HOME} main.py --epochs=1 --dry-run");
Assertions.assertEquals(task2.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"${PYTHON_HOME} main.py --epochs=1 --dry-run");
parameters.setPythonCommand("/usr/bin/python");
PytorchTask task3 = initTask(parameters);
Assert.assertEquals(task3.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"/usr/bin/python main.py --epochs=1 --dry-run");
Assertions.assertEquals(task3.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"/usr/bin/python main.py --epochs=1 --dry-run");
}
@Test
public void testBuildPythonCommandWithCreateCondeEnv() throws Exception {
PytorchParameters parameters = new PytorchParameters();
@ -132,10 +131,11 @@ public class PytorchTaskTest {
parameters.setScriptParams("--epochs=1 --dry-run");
PytorchTask task = initTask(parameters);
Assert.assertEquals(task.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"conda create -y python=3.6 -p ./venv && source activate ./venv && ./venv/bin/python -m pip install -r requirements.txt\n" +
"./venv/bin/python main.py --epochs=1 --dry-run");
Assertions.assertEquals(task.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"conda create -y python=3.6 -p ./venv && source activate ./venv && ./venv/bin/python -m pip install -r requirements.txt\n"
+
"./venv/bin/python main.py --epochs=1 --dry-run");
}
@Test
@ -149,10 +149,11 @@ public class PytorchTaskTest {
parameters.setScriptParams("--epochs=1 --dry-run");
PytorchTask task = initTask(parameters);
Assert.assertEquals(task.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r requirements.txt\n" +
"./venv/bin/python main.py --epochs=1 --dry-run");
Assertions.assertEquals(task.buildPythonExecuteCommand(),
"export PYTHONPATH=.\n" +
"virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r requirements.txt\n"
+
"./venv/bin/python main.py --epochs=1 --dry-run");
}
@ -177,14 +178,15 @@ public class PytorchTaskTest {
createFile(scriptFile);
String expected = "export PYTHONPATH=%s\n" +
"virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r %s\n" +
"./venv/bin/python %s";
"virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r %s\n"
+
"./venv/bin/python %s";
System.out.println(task.buildPythonExecuteCommand());
Assert.assertEquals(String.format(expected, pythonPath, requirementFile, scriptFile), task.buildPythonExecuteCommand());
Assertions.assertEquals(String.format(expected, pythonPath, requirementFile, scriptFile),
task.buildPythonExecuteCommand());
}
private PytorchTask initTask(PytorchParameters pytorchParameters) {
TaskExecutionContext taskExecutionContext = createContext(pytorchParameters);
PytorchTask task = new PytorchTask(taskExecutionContext);
@ -221,5 +223,3 @@ public class PytorchTaskTest {
}
}

View File

@ -27,12 +27,12 @@ import org.apache.commons.io.IOUtils;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import com.amazonaws.services.sagemaker.AmazonSageMaker;
import com.amazonaws.services.sagemaker.model.DescribePipelineExecutionResult;
@ -40,7 +40,7 @@ import com.amazonaws.services.sagemaker.model.StartPipelineExecutionRequest;
import com.amazonaws.services.sagemaker.model.StartPipelineExecutionResult;
import com.amazonaws.services.sagemaker.model.StopPipelineExecutionResult;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class SagemakerTaskTest {
private final String pipelineExecutionArn = "test-pipeline-arn";
@ -49,7 +49,7 @@ public class SagemakerTaskTest {
private AmazonSageMaker client;
private PipelineUtils pipelineUtils = new PipelineUtils();
@Before
@BeforeEach
public void before() {
String parameters = buildParameters();
TaskExecutionContext taskExecutionContext = Mockito.mock(TaskExecutionContext.class);
@ -60,35 +60,38 @@ public class SagemakerTaskTest {
sagemakerTask.init();
StartPipelineExecutionResult startPipelineExecutionResult = Mockito.mock(StartPipelineExecutionResult.class);
Mockito.when(startPipelineExecutionResult.getPipelineExecutionArn()).thenReturn(pipelineExecutionArn);
Mockito.lenient().when(startPipelineExecutionResult.getPipelineExecutionArn()).thenReturn(pipelineExecutionArn);
StopPipelineExecutionResult stopPipelineExecutionResult = Mockito.mock(StopPipelineExecutionResult.class);
Mockito.when(stopPipelineExecutionResult.getPipelineExecutionArn()).thenReturn(pipelineExecutionArn);
Mockito.lenient().when(stopPipelineExecutionResult.getPipelineExecutionArn()).thenReturn(pipelineExecutionArn);
DescribePipelineExecutionResult describePipelineExecutionResult = Mockito.mock(DescribePipelineExecutionResult.class);
Mockito.when(describePipelineExecutionResult.getPipelineExecutionStatus()).thenReturn("Executing", "Succeeded");
DescribePipelineExecutionResult describePipelineExecutionResult =
Mockito.mock(DescribePipelineExecutionResult.class);
Mockito.lenient().when(describePipelineExecutionResult.getPipelineExecutionStatus()).thenReturn("Executing",
"Succeeded");
Mockito.when(client.startPipelineExecution(any())).thenReturn(startPipelineExecutionResult);
Mockito.when(client.stopPipelineExecution(any())).thenReturn(stopPipelineExecutionResult);
Mockito.when(client.describePipelineExecution(any())).thenReturn(describePipelineExecutionResult);
Mockito.lenient().when(client.startPipelineExecution(any())).thenReturn(startPipelineExecutionResult);
Mockito.lenient().when(client.stopPipelineExecution(any())).thenReturn(stopPipelineExecutionResult);
Mockito.lenient().when(client.describePipelineExecution(any())).thenReturn(describePipelineExecutionResult);
}
@Test
public void testStartPipelineRequest() throws Exception {
StartPipelineExecutionRequest request = sagemakerTask.createStartPipelineRequest();
Assert.assertEquals("AbalonePipeline", request.getPipelineName());
Assert.assertEquals("test Pipeline", request.getPipelineExecutionDescription());
Assert.assertEquals("AbalonePipeline", request.getPipelineExecutionDisplayName());
Assert.assertEquals("AbalonePipeline", request.getPipelineName());
Assert.assertEquals(new Integer(1), request.getParallelismConfiguration().getMaxParallelExecutionSteps());
Assertions.assertEquals("AbalonePipeline", request.getPipelineName());
Assertions.assertEquals("test Pipeline", request.getPipelineExecutionDescription());
Assertions.assertEquals("AbalonePipeline", request.getPipelineExecutionDisplayName());
Assertions.assertEquals("AbalonePipeline", request.getPipelineName());
Assertions.assertEquals(Integer.valueOf(1),
request.getParallelismConfiguration().getMaxParallelExecutionSteps());
}
@Test
public void testPipelineExecution() throws Exception {
PipelineUtils.PipelineId pipelineId =
pipelineUtils.startPipelineExecution(client, sagemakerTask.createStartPipelineRequest());
Assert.assertEquals(pipelineExecutionArn, pipelineId.getPipelineExecutionArn());
Assert.assertEquals(0, pipelineUtils.checkPipelineExecutionStatus(client, pipelineId));
Assertions.assertEquals(pipelineExecutionArn, pipelineId.getPipelineExecutionArn());
Assertions.assertEquals(0, pipelineUtils.checkPipelineExecutionStatus(client, pipelineId));
pipelineUtils.stopPipelineExecution(client, pipelineId);
}

View File

@ -22,15 +22,15 @@ import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import java.util.LinkedList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class SparkParametersTest {
@Test
public void getResourceFilesList() {
SparkParameters sparkParameters = new SparkParameters();
Assert.assertTrue(sparkParameters.getResourceFilesList().isEmpty());
Assertions.assertTrue(sparkParameters.getResourceFilesList().isEmpty());
ResourceInfo mainResource = new ResourceInfo();
mainResource.setRes("testSparkMain-1.0.0-SNAPSHOT.jar\"");
@ -43,8 +43,8 @@ public class SparkParametersTest {
sparkParameters.setResourceList(resourceInfos);
List<ResourceInfo> resourceFilesList = sparkParameters.getResourceFilesList();
Assert.assertNotNull(resourceFilesList);
Assert.assertEquals(2, resourceFilesList.size());
Assertions.assertNotNull(resourceFilesList);
Assertions.assertEquals(2, resourceFilesList.size());
ResourceInfo resourceInfo2 = new ResourceInfo();
resourceInfo2.setRes("testSparkParameters2.jar");
@ -52,8 +52,8 @@ public class SparkParametersTest {
sparkParameters.setResourceList(resourceInfos);
resourceFilesList = sparkParameters.getResourceFilesList();
Assert.assertNotNull(resourceFilesList);
Assert.assertEquals(3, resourceFilesList.size());
Assertions.assertNotNull(resourceFilesList);
Assertions.assertEquals(3, resourceFilesList.size());
}
}

View File

@ -23,13 +23,13 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
import java.util.Collections;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class SparkTaskTest {
@Test
@ -42,7 +42,7 @@ public class SparkTaskTest {
SparkTask sparkTask = Mockito.spy(new SparkTask(taskExecutionContext));
sparkTask.init();
Assert.assertEquals(sparkTask.buildCommand(),
Assertions.assertEquals(sparkTask.buildCommand(),
"${SPARK_HOME}/bin/spark-sql " +
"--master yarn " +
"--deploy-mode client " +
@ -62,7 +62,7 @@ public class SparkTaskTest {
Mockito.when(taskExecutionContext.getTaskParams()).thenReturn(parameters);
SparkTask sparkTask = Mockito.spy(new SparkTask(taskExecutionContext));
sparkTask.init();
Assert.assertEquals(sparkTask.buildCommand(),
Assertions.assertEquals(sparkTask.buildCommand(),
"${SPARK_HOME}/bin/spark-submit " +
"--master yarn " +
"--deploy-mode client " +

View File

@ -24,12 +24,12 @@ import org.apache.dolphinscheduler.plugin.task.sqoop.parameter.sources.SourceMys
import org.apache.dolphinscheduler.plugin.task.sqoop.parameter.targets.TargetHdfsParameter;
import org.apache.dolphinscheduler.plugin.task.sqoop.parameter.targets.TargetHiveParameter;
import org.apache.dolphinscheduler.plugin.task.sqoop.parameter.targets.TargetMysqlParameter;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* sqoop parameter entity test

View File

@ -39,16 +39,16 @@ import org.apache.zeppelin.client.ZeppelinClient;
import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;
import com.fasterxml.jackson.databind.ObjectMapper;
@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class ZeppelinTaskTest {
private static final String MOCK_NOTE_ID = "2GYJR92R7";
@ -67,7 +67,7 @@ public class ZeppelinTaskTest {
};
@Before
@BeforeEach
public void before() throws Exception {
String zeppelinParameters = buildZeppelinTaskParameters();
TaskExecutionContext taskExecutionContext = mock(TaskExecutionContext.class);
@ -78,13 +78,14 @@ public class ZeppelinTaskTest {
this.paragraphResult = mock(ParagraphResult.class);
doReturn(this.zClient).when(this.zeppelinTask).getZeppelinClient();
when(this.zClient.executeParagraph(any(), any(), any(Map.class))).thenReturn(this.paragraphResult);
when(paragraphResult.getResultInText()).thenReturn("mock-zeppelin-paragraph-execution-result");
this.zeppelinTask.init();
}
@Test
public void testHandleWithParagraphExecutionSuccess() throws Exception {
when(this.zClient.executeParagraph(any(), any(), any(Map.class))).thenReturn(this.paragraphResult);
when(paragraphResult.getResultInText()).thenReturn("mock-zeppelin-paragraph-execution-result");
when(this.paragraphResult.getStatus()).thenReturn(Status.FINISHED);
this.zeppelinTask.handle(taskCallBack);
Mockito.verify(this.zClient).executeParagraph(MOCK_NOTE_ID,
@ -92,45 +93,56 @@ public class ZeppelinTaskTest {
(Map<String, String>) mapper.readValue(MOCK_PARAMETERS, Map.class));
Mockito.verify(this.paragraphResult).getResultInText();
Mockito.verify(this.paragraphResult).getStatus();
Assert.assertEquals(EXIT_CODE_SUCCESS, this.zeppelinTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, this.zeppelinTask.getExitStatusCode());
}
@Test
public void testHandleWithParagraphExecutionAborted() throws Exception {
when(this.zClient.executeParagraph(any(), any(), any(Map.class))).thenReturn(this.paragraphResult);
when(paragraphResult.getResultInText()).thenReturn("mock-zeppelin-paragraph-execution-result");
when(this.paragraphResult.getStatus()).thenReturn(Status.ABORT);
this.zeppelinTask.handle(taskCallBack);
Mockito.verify(this.zClient).executeParagraph(MOCK_NOTE_ID,
MOCK_PARAGRAPH_ID,
(Map<String, String>) mapper.readValue(MOCK_PARAMETERS, Map.class));
Mockito.verify(this.paragraphResult).getResultInText();
Mockito.verify(this.paragraphResult).getStatus();
Assert.assertEquals(EXIT_CODE_KILL, this.zeppelinTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_KILL, this.zeppelinTask.getExitStatusCode());
}
@Test
public void testHandleWithParagraphExecutionError() throws Exception {
when(this.zClient.executeParagraph(any(), any(), any(Map.class))).thenReturn(this.paragraphResult);
when(paragraphResult.getResultInText()).thenReturn("mock-zeppelin-paragraph-execution-result");
when(this.paragraphResult.getStatus()).thenReturn(Status.ERROR);
this.zeppelinTask.handle(taskCallBack);
Mockito.verify(this.zClient).executeParagraph(MOCK_NOTE_ID,
MOCK_PARAGRAPH_ID,
(Map<String, String>) mapper.readValue(MOCK_PARAMETERS, Map.class));
Mockito.verify(this.paragraphResult).getResultInText();
Mockito.verify(this.paragraphResult).getStatus();
Assert.assertEquals(EXIT_CODE_FAILURE, this.zeppelinTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, this.zeppelinTask.getExitStatusCode());
}
@Test(expected = TaskException.class)
@Test
public void testHandleWithParagraphExecutionException() throws Exception {
when(this.zClient.executeParagraph(any(), any(), any(Map.class)))
.thenThrow(new TaskException("Something wrong happens from zeppelin side"));
this.zeppelinTask.handle(taskCallBack);
Assertions.assertThrows(TaskException.class, () -> {
this.zeppelinTask.handle(taskCallBack);
});
Mockito.verify(this.zClient).executeParagraph(MOCK_NOTE_ID,
MOCK_PARAGRAPH_ID,
(Map<String, String>) mapper.readValue(MOCK_PARAMETERS, Map.class));
Mockito.verify(this.paragraphResult, Mockito.times(0)).getResultInText();
Mockito.verify(this.paragraphResult, Mockito.times(0)).getStatus();
Assert.assertEquals(EXIT_CODE_FAILURE, this.zeppelinTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_FAILURE, this.zeppelinTask.getExitStatusCode());
}
@Test
@ -139,19 +151,18 @@ public class ZeppelinTaskTest {
TaskExecutionContext taskExecutionContext = mock(TaskExecutionContext.class);
when(taskExecutionContext.getTaskParams()).thenReturn(zeppelinParametersWithNoParagraphId);
this.zeppelinTask = spy(new ZeppelinTask(taskExecutionContext));
this.zClient = mock(ZeppelinClient.class);
this.noteResult = mock(NoteResult.class);
doReturn(this.zClient).when(this.zeppelinTask).getZeppelinClient();
when(this.zClient.executeNote(any(), any(Map.class))).thenReturn(this.noteResult);
this.zeppelinTask.init();
this.zeppelinTask.handle(taskCallBack);
Mockito.verify(this.zClient).executeNote(MOCK_NOTE_ID,
(Map<String, String>) mapper.readValue(MOCK_PARAMETERS, Map.class));
Mockito.verify(this.noteResult).getParagraphResultList();
Assert.assertEquals(EXIT_CODE_SUCCESS, this.zeppelinTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, this.zeppelinTask.getExitStatusCode());
}
@Test
@ -159,18 +170,19 @@ public class ZeppelinTaskTest {
String zeppelinParametersWithNoParagraphId = buildZeppelinTaskParametersWithProductionSetting();
TaskExecutionContext taskExecutionContext = mock(TaskExecutionContext.class);
Mockito.mockStatic(DateUtils.class);
when(DateUtils.getTimestampString()).thenReturn("123456789");
when(taskExecutionContext.getTaskParams()).thenReturn(zeppelinParametersWithNoParagraphId);
this.zeppelinTask = spy(new ZeppelinTask(taskExecutionContext));
this.zClient = mock(ZeppelinClient.class);
this.noteResult = mock(NoteResult.class);
doReturn(this.zClient).when(this.zeppelinTask).getZeppelinClient();
when(this.zClient.cloneNote(any(String.class), any(String.class))).thenReturn(MOCK_CLONE_NOTE_ID);
when(this.zClient.executeNote(any(), any(Map.class))).thenReturn(this.noteResult);
this.zeppelinTask.init();
when(DateUtils.getTimestampString()).thenReturn("123456789");
this.zeppelinTask.handle(taskCallBack);
Mockito.verify(this.zClient).cloneNote(
MOCK_NOTE_ID,
String.format("%s%s_%s", MOCK_PRODUCTION_DIRECTORY, MOCK_NOTE_ID, "123456789"));
@ -178,7 +190,7 @@ public class ZeppelinTaskTest {
(Map<String, String>) mapper.readValue(MOCK_PARAMETERS, Map.class));
Mockito.verify(this.noteResult).getParagraphResultList();
Mockito.verify(this.zClient).deleteNote(MOCK_CLONE_NOTE_ID);
Assert.assertEquals(EXIT_CODE_SUCCESS, this.zeppelinTask.getExitStatusCode());
Assertions.assertEquals(EXIT_CODE_SUCCESS, this.zeppelinTask.getExitStatusCode());
}
private String buildZeppelinTaskParameters() {