This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 3885e4060d1 Add MigrationJobTypeTest (#37115)
3885e4060d1 is described below
commit 3885e4060d150ae59a784d3260f99d6c98fd4eae
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Nov 15 18:19:44 2025 +0800
Add MigrationJobTypeTest (#37115)
---
.../data/pipeline/cdc/CDCJobTypeTest.java | 13 ++----
.../config/MigrationJobConfiguration.java | 2 +-
.../scenario/migration/MigrationJobTypeTest.java} | 46 ++++++++++++----------
3 files changed, 30 insertions(+), 31 deletions(-)
diff --git
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/CDCJobTypeTest.java
b/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/CDCJobTypeTest.java
index 94edac021e5..79194c055d0 100644
---
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/CDCJobTypeTest.java
+++
b/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/CDCJobTypeTest.java
@@ -17,15 +17,12 @@
package org.apache.shardingsphere.data.pipeline.cdc;
-import
org.apache.shardingsphere.data.pipeline.api.type.ShardingSpherePipelineDataSourceConfiguration;
import org.apache.shardingsphere.data.pipeline.cdc.config.CDCJobConfiguration;
import
org.apache.shardingsphere.data.pipeline.cdc.config.yaml.swapper.YamlCDCJobConfigurationSwapper;
-import org.apache.shardingsphere.data.pipeline.core.datanode.JobDataNodeLine;
import
org.apache.shardingsphere.data.pipeline.core.job.progress.yaml.swapper.YamlTransmissionJobItemProgressSwapper;
import org.apache.shardingsphere.data.pipeline.core.job.type.PipelineJobOption;
import org.apache.shardingsphere.data.pipeline.core.job.type.PipelineJobType;
import org.apache.shardingsphere.data.pipeline.core.pojo.PipelineJobObjective;
-import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
@@ -38,6 +35,7 @@ import static org.hamcrest.Matchers.isA;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
class CDCJobTypeTest {
@@ -61,15 +59,10 @@ class CDCJobTypeTest {
@SuppressWarnings("unchecked")
@Test
void assertGetJobObjective() {
- CDCJobConfiguration jobConfig = new CDCJobConfiguration("foo_job",
"foo_db", Arrays.asList("foo_schema.foo_tbl", "bar_schema.bar_tbl"),
- false, mock(DatabaseType.class),
mock(ShardingSpherePipelineDataSourceConfiguration.class),
mock(JobDataNodeLine.class), Collections.emptyList(),
- false, mock(CDCJobConfiguration.SinkConfiguration.class), 1,
3);
+ CDCJobConfiguration jobConfig = new CDCJobConfiguration("foo_job",
+ "foo_db", Arrays.asList("foo_schema.foo_tbl",
"bar_schema.bar_tbl"), false, mock(), mock(), mock(), Collections.emptyList(),
false, mock(), 1, 3);
PipelineJobObjective actual = jobType.getJobObjective(jobConfig);
assertThat(actual.getDatabaseName(), is("foo_db"));
assertThat(actual.getTableName(), is("foo_schema.foo_tbl,
bar_schema.bar_tbl"));
}
-
- private static <T> T mock(final Class<T> type) {
- return org.mockito.Mockito.mock(type);
- }
}
diff --git
a/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/config/MigrationJobConfiguration.java
b/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/config/MigrationJobConfiguration.java
index 59d3b652d26..15ca5206ecc 100644
---
a/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/config/MigrationJobConfiguration.java
+++
b/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/config/MigrationJobConfiguration.java
@@ -51,7 +51,7 @@ public final class MigrationJobConfiguration implements
PipelineJobConfiguration
private final List<String> targetTableNames;
/**
- * Map{logic table names, schema name}.
+ * Map {logic table names, schema name}.
*/
private final Map<String, String> targetTableSchemaMap;
diff --git
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/CDCJobTypeTest.java
b/kernel/data-pipeline/scenario/migration/core/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/migration/MigrationJobTypeTest.java
similarity index 53%
copy from
kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/CDCJobTypeTest.java
copy to
kernel/data-pipeline/scenario/migration/core/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/migration/MigrationJobTypeTest.java
index 94edac021e5..079513a5da6 100644
---
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/CDCJobTypeTest.java
+++
b/kernel/data-pipeline/scenario/migration/core/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/migration/MigrationJobTypeTest.java
@@ -15,17 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.data.pipeline.cdc;
+package org.apache.shardingsphere.data.pipeline.scenario.migration;
-import
org.apache.shardingsphere.data.pipeline.api.type.ShardingSpherePipelineDataSourceConfiguration;
-import org.apache.shardingsphere.data.pipeline.cdc.config.CDCJobConfiguration;
-import
org.apache.shardingsphere.data.pipeline.cdc.config.yaml.swapper.YamlCDCJobConfigurationSwapper;
+import
org.apache.shardingsphere.data.pipeline.core.consistencycheck.PipelineDataConsistencyChecker;
+import org.apache.shardingsphere.data.pipeline.core.datanode.JobDataNodeEntry;
import org.apache.shardingsphere.data.pipeline.core.datanode.JobDataNodeLine;
import
org.apache.shardingsphere.data.pipeline.core.job.progress.yaml.swapper.YamlTransmissionJobItemProgressSwapper;
import org.apache.shardingsphere.data.pipeline.core.job.type.PipelineJobOption;
import org.apache.shardingsphere.data.pipeline.core.job.type.PipelineJobType;
import org.apache.shardingsphere.data.pipeline.core.pojo.PipelineJobObjective;
-import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import
org.apache.shardingsphere.data.pipeline.scenario.migration.config.MigrationJobConfiguration;
+import
org.apache.shardingsphere.data.pipeline.scenario.migration.config.yaml.swapper.YamlMigrationJobConfigurationSwapper;
+import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
@@ -38,38 +39,43 @@ import static org.hamcrest.Matchers.isA;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
-class CDCJobTypeTest {
+class MigrationJobTypeTest {
@SuppressWarnings("rawtypes")
- private final PipelineJobType jobType =
TypedSPILoader.getService(PipelineJobType.class, "STREAMING");
+ private final PipelineJobType jobType =
TypedSPILoader.getService(PipelineJobType.class, "MIGRATION");
@Test
void assertGetOption() {
PipelineJobOption actual = jobType.getOption();
- assertThat(actual.getCode(), is("03"));
+ assertThat(actual.getCode(), is("01"));
assertTrue(actual.isTransmissionJob());
- assertThat(actual.getYamlJobConfigurationSwapper(),
isA(YamlCDCJobConfigurationSwapper.class));
+ assertThat(actual.getYamlJobConfigurationSwapper(),
isA(YamlMigrationJobConfigurationSwapper.class));
assertThat(actual.getYamlJobItemProgressSwapper(),
isA(YamlTransmissionJobItemProgressSwapper.class));
- assertThat(actual.getJobClass(), is(CDCJob.class));
+ assertThat(actual.getJobClass(), is(MigrationJob.class));
assertFalse(actual.isIgnoreToStartDisabledJobWhenJobItemProgressIsFinished());
- assertNull(actual.getToBeStartDisabledNextJobType());
- assertNull(actual.getToBeStoppedPreviousJobType());
-
assertTrue(actual.isForceNoShardingWhenConvertToJobConfigurationPOJO());
+ assertThat(actual.getToBeStartDisabledNextJobType(),
is("CONSISTENCY_CHECK"));
+ assertThat(actual.getToBeStoppedPreviousJobType(),
is("CONSISTENCY_CHECK"));
+
assertFalse(actual.isForceNoShardingWhenConvertToJobConfigurationPOJO());
}
@SuppressWarnings("unchecked")
@Test
void assertGetJobObjective() {
- CDCJobConfiguration jobConfig = new CDCJobConfiguration("foo_job",
"foo_db", Arrays.asList("foo_schema.foo_tbl", "bar_schema.bar_tbl"),
- false, mock(DatabaseType.class),
mock(ShardingSpherePipelineDataSourceConfiguration.class),
mock(JobDataNodeLine.class), Collections.emptyList(),
- false, mock(CDCJobConfiguration.SinkConfiguration.class), 1,
3);
+ JobDataNodeEntry dataNodeEntry1 = new JobDataNodeEntry("foo_tbl",
Arrays.asList(new DataNode("db.foo_tbl_0"), new DataNode("db.foo_tbl_1")));
+ JobDataNodeEntry dataNodeEntry2 = new JobDataNodeEntry("bar_tbl",
Arrays.asList(new DataNode("db.bar_tbl_0"), new DataNode("db.bar_tbl_1")));
+ MigrationJobConfiguration jobConfig = new
MigrationJobConfiguration("foo_job",
+ "foo_db", mock(), mock(), Collections.emptyMap(), mock(),
Collections.emptyList(), Collections.emptyMap(), mock(),
+ Collections.singletonList(new
JobDataNodeLine(Arrays.asList(dataNodeEntry1, dataNodeEntry2))), 1, 1);
PipelineJobObjective actual = jobType.getJobObjective(jobConfig);
- assertThat(actual.getDatabaseName(), is("foo_db"));
- assertThat(actual.getTableName(), is("foo_schema.foo_tbl,
bar_schema.bar_tbl"));
+ assertNull(actual.getDatabaseName());
+ assertThat(actual.getTableName(),
is("db.foo_tbl_0,db.foo_tbl_1,db.bar_tbl_0,db.bar_tbl_1"));
}
- private static <T> T mock(final Class<T> type) {
- return org.mockito.Mockito.mock(type);
+ @SuppressWarnings("unchecked")
+ @Test
+ void assertBuildDataConsistencyChecker() {
+
assertThat(jobType.buildDataConsistencyChecker(mock(MigrationJobConfiguration.class),
mock(), mock()), isA(PipelineDataConsistencyChecker.class));
}
}