This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 3f27fc1 Add alter sharding key generator DistSQL parser test case
assert. (#14076)
3f27fc1 is described below
commit 3f27fc1fbd61afd8fb84f5b12fbf803cb53c45e4
Author: Zonglei Dong <[email protected]>
AuthorDate: Tue Dec 14 14:24:18 2021 +0800
Add alter sharding key generator DistSQL parser test case assert. (#14076)
---
.../distsql/rdl/ShardingKeyGeneratorAssert.java | 49 ++++++++++++++++++++++
.../rdl/alter/AlterRuleStatementAssert.java | 5 +++
.../AlterShardingKeyGeneratorStatementAssert.java} | 40 ++++++++----------
.../CreateShardingKeyGeneratorStatementAssert.java | 24 ++++-------
...AlterShardingKeyGeneratorStatementTestCase.java | 6 +--
.../src/main/resources/case/rdl/alter.xml | 6 +--
6 files changed, 86 insertions(+), 44 deletions(-)
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingKeyGeneratorAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingKeyGeneratorAssert.java
new file mode 100644
index 0000000..3619782
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingKeyGeneratorAssert.java
@@ -0,0 +1,49 @@
+/*
+ * 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.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.rdl;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingKeyGeneratorSegment;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.AlgorithmAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingKeyGenerator;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Sharding key generator assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShardingKeyGeneratorAssert {
+
+ /**
+ * Assert sharding key generator is correct with expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual sharding key generator
+ * @param expected expected sharding key generator test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final ShardingKeyGeneratorSegment actual, final ExpectedShardingKeyGenerator
expected) {
+ assertNotNull(assertContext.getText("Actual sharding key generator
segment should exist."), actual.getAlgorithmSegment());
+ assertThat(actual.getKeyGeneratorName(),
is(expected.getKeyGeneratorName()));
+ AlgorithmAssert.assertIs(assertContext, actual.getAlgorithmSegment(),
expected.getAlgorithmSegment());
+ }
+}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java
index 3cb6faa..148ee4e 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.shadow.distsql.parser.statement.AlterShadowAlgo
import
org.apache.shardingsphere.shadow.distsql.parser.statement.AlterShadowRuleStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBroadcastTableRulesStatement;
+import
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingKeyGeneratorStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterDatabaseDiscoveryRuleStatementAssert;
@@ -36,6 +37,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShadowRuleStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingBindingTableRulesStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingBroadcastTableRulesStatementAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingKeyGeneratorStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingTableRuleStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDefaultSingleTableRuleStatementTestCase;
@@ -45,6 +47,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShadowRuleStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingBindingTableRulesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingBroadcastTableRulesStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingKeyGeneratorStatementTestCase;
/**
* Alter rule statement assert.
@@ -79,6 +82,8 @@ public final class AlterRuleStatementAssert {
} else if (actual instanceof AlterDefaultSingleTableRuleStatement) {
AlterDefaultSingleTableRuleStatementAssert.assertIs(assertContext,
(AlterDefaultSingleTableRuleStatement) actual,
(AlterDefaultSingleTableRuleStatementTestCase) expected);
+ } else if (actual instanceof AlterShardingKeyGeneratorStatement) {
+ AlterShardingKeyGeneratorStatementAssert.assertIs(assertContext,
(AlterShardingKeyGeneratorStatement) actual,
(AlterShardingKeyGeneratorStatementTestCase) expected);
}
}
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingKeyGeneratorStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingKeyGeneratorStatementAssert.java
similarity index 58%
copy from
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingKeyGeneratorStatementAssert.java
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingKeyGeneratorStatementAssert.java
index 6c64f6c..346f747 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingKeyGeneratorStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingKeyGeneratorStatementAssert.java
@@ -15,60 +15,54 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingKeyGeneratorSegment;
-import
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingKeyGeneratorStatement;
+import
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingKeyGeneratorStatement;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.AlgorithmAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.rdl.ShardingKeyGeneratorAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingKeyGenerator;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingKeyGeneratorStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingKeyGeneratorStatementTestCase;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
/**
- * Create sharding key generator statement assert.
+ * Alter sharding key generator statement assert.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class CreateShardingKeyGeneratorStatementAssert {
+public final class AlterShardingKeyGeneratorStatementAssert {
/**
- * Assert create sharding key generator statement is correct with expected
parser result.
+ * Assert alter sharding key generator statement is correct with expected
parser result.
*
* @param assertContext assert context
- * @param actual actual create sharding key generator statement
+ * @param actual actual alter sharding key generator statement
* @param expected expected create sharding key generator statement test
case
*/
- public static void assertIs(final SQLCaseAssertContext assertContext,
final CreateShardingKeyGeneratorStatement actual, final
CreateShardingKeyGeneratorStatementTestCase expected) {
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final AlterShardingKeyGeneratorStatement actual, final
AlterShardingKeyGeneratorStatementTestCase expected) {
if (null == expected) {
- assertNull(assertContext.getText("Actual statement should not
exist."), actual);
+ assertNull(assertContext.getText("Actual sharding key generator
statement should not exist."), actual);
} else {
- assertNotNull(assertContext.getText("Actual statement should
exist."), actual);
+ assertNotNull(assertContext.getText("Actual sharding key generator
statement should exist."), actual);
assertShardingKeyGenerator(assertContext,
actual.getKeyGeneratorSegments(), expected.getShardingKeyGenerators());
}
}
private static void assertShardingKeyGenerator(final SQLCaseAssertContext
assertContext, final Collection<ShardingKeyGeneratorSegment> actual, final
List<ExpectedShardingKeyGenerator> expected) {
if (null == expected) {
- assertNull(assertContext.getText("Actual sharding key generator
should not exist."), actual);
+ assertNull(assertContext.getText("Actual sharding key generator
segments should not exist."), actual);
} else {
- assertNotNull(assertContext.getText("Actual sharding key generator
should exist."), actual);
- final Map<String, ShardingKeyGeneratorSegment> actualMap =
actual.stream().collect(Collectors.toMap(ShardingKeyGeneratorSegment::getKeyGeneratorName,
each -> each));
- for (ExpectedShardingKeyGenerator each : expected) {
- ShardingKeyGeneratorSegment actualAlgorithm =
actualMap.get(each.getKeyGeneratorName());
- assertNotNull(assertContext.getText("Actual sharding key
generator should exist."), actualAlgorithm);
- assertThat(actualAlgorithm.getKeyGeneratorName(),
is(each.getKeyGeneratorName()));
- AlgorithmAssert.assertIs(assertContext,
actualAlgorithm.getAlgorithmSegment(), each.getAlgorithmSegment());
+ assertNotNull(assertContext.getText("Actual sharding key generator
segments should exist."), actual);
+ int count = 0;
+ for (ShardingKeyGeneratorSegment each : actual) {
+ ShardingKeyGeneratorAssert.assertIs(assertContext, each,
expected.get(count));
+ count++;
}
}
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingKeyGeneratorStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingKeyGeneratorStatementAssert.java
index 6c64f6c..73165ae 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingKeyGeneratorStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingKeyGeneratorStatementAssert.java
@@ -22,19 +22,15 @@ import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingKeyGeneratorSegment;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingKeyGeneratorStatement;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.AlgorithmAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.rdl.ShardingKeyGeneratorAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingKeyGenerator;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingKeyGeneratorStatementTestCase;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
/**
* Create sharding key generator statement assert.
@@ -51,24 +47,22 @@ public final class
CreateShardingKeyGeneratorStatementAssert {
*/
public static void assertIs(final SQLCaseAssertContext assertContext,
final CreateShardingKeyGeneratorStatement actual, final
CreateShardingKeyGeneratorStatementTestCase expected) {
if (null == expected) {
- assertNull(assertContext.getText("Actual statement should not
exist."), actual);
+ assertNull(assertContext.getText("Actual sharding key generator
statement should not exist."), actual);
} else {
- assertNotNull(assertContext.getText("Actual statement should
exist."), actual);
+ assertNotNull(assertContext.getText("Actual sharding key generator
statement should exist."), actual);
assertShardingKeyGenerator(assertContext,
actual.getKeyGeneratorSegments(), expected.getShardingKeyGenerators());
}
}
private static void assertShardingKeyGenerator(final SQLCaseAssertContext
assertContext, final Collection<ShardingKeyGeneratorSegment> actual, final
List<ExpectedShardingKeyGenerator> expected) {
if (null == expected) {
- assertNull(assertContext.getText("Actual sharding key generator
should not exist."), actual);
+ assertNull(assertContext.getText("Actual sharding key generator
segments should not exist."), actual);
} else {
- assertNotNull(assertContext.getText("Actual sharding key generator
should exist."), actual);
- final Map<String, ShardingKeyGeneratorSegment> actualMap =
actual.stream().collect(Collectors.toMap(ShardingKeyGeneratorSegment::getKeyGeneratorName,
each -> each));
- for (ExpectedShardingKeyGenerator each : expected) {
- ShardingKeyGeneratorSegment actualAlgorithm =
actualMap.get(each.getKeyGeneratorName());
- assertNotNull(assertContext.getText("Actual sharding key
generator should exist."), actualAlgorithm);
- assertThat(actualAlgorithm.getKeyGeneratorName(),
is(each.getKeyGeneratorName()));
- AlgorithmAssert.assertIs(assertContext,
actualAlgorithm.getAlgorithmSegment(), each.getAlgorithmSegment());
+ assertNotNull(assertContext.getText("Actual sharding key generator
segments should exist."), actual);
+ int count = 0;
+ for (ShardingKeyGeneratorSegment each : actual) {
+ ShardingKeyGeneratorAssert.assertIs(assertContext, each,
expected.get(count));
+ count++;
}
}
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingKeyGeneratorStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingKeyGeneratorStatementTestCase.java
index 54ffd7c..522cca7 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingKeyGeneratorStatementTestCase.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingKeyGeneratorStatementTestCase.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domai
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingAlgorithm;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingKeyGenerator;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
@@ -33,6 +33,6 @@ import java.util.List;
@Setter
public final class AlterShardingKeyGeneratorStatementTestCase extends
SQLParserTestCase {
- @XmlElement(name = "keyGenerator")
- private final List<ExpectedShardingAlgorithm> shardingAlgorithms = new
LinkedList<>();
+ @XmlElement(name = "shardingKeyGenerator")
+ private final List<ExpectedShardingKeyGenerator> shardingKeyGenerators =
new LinkedList<>();
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rdl/alter.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rdl/alter.xml
index 5586c45..d9bec03 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rdl/alter.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rdl/alter.xml
@@ -256,13 +256,13 @@
</alter-sharding-algorithm>
<alter-sharding-key-generator sql-case-id="alter-sharding-key-generator">
- <keyGenerator key-generator-name="uuid_key_generator">
- <algorithm algorithm-name="inline">
+ <shardingKeyGenerator key-generator-name="uuid_key_generator">
+ <algorithm algorithm-name="uuid">
<properties>
<property key="worker-id" value="123"/>
</properties>
</algorithm>
- </keyGenerator>
+ </shardingKeyGenerator>
</alter-sharding-key-generator>
<alter-default-single-table sql-case-id="alter-default-single-table"
default-data-source="ds_0" />