This is an automated email from the ASF dual-hosted git repository.
yx9o 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 253a5faf7a9 Add more test cases on ReadwriteSplittingRule (#33591)
253a5faf7a9 is described below
commit 253a5faf7a9d5ad853302b75c18d849005fa04b3
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Nov 8 14:14:47 2024 +0800
Add more test cases on ReadwriteSplittingRule (#33591)
---
.../rule/ReadwriteSplittingRuleTest.java | 30 +++++++++++++++++-----
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java
index 67eaf7e7547..9ac8f7984fb 100644
---
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java
+++
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java
@@ -24,6 +24,7 @@ import
org.apache.shardingsphere.infra.rule.attribute.datasource.StaticDataSourc
import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
import
org.apache.shardingsphere.readwritesplitting.config.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.config.rule.ReadwriteSplittingDataSourceGroupRuleConfiguration;
+import
org.apache.shardingsphere.readwritesplitting.exception.actual.InvalidReadwriteSplittingActualDataSourceInlineExpressionException;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -33,16 +34,26 @@ import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
class ReadwriteSplittingRuleTest {
@Test
- void assertFindDataSourceGroupRule() {
- Optional<ReadwriteSplittingDataSourceGroupRule> actual =
createReadwriteSplittingRule().findDataSourceGroupRule("readwrite");
- assertTrue(actual.isPresent());
- assertDataSourceGroupRule(actual.get());
+ void assertNewInstanceWithInvalidWriteActualDataSourceInlineExpression() {
+ ReadwriteSplittingDataSourceGroupRuleConfiguration config =
+ new
ReadwriteSplittingDataSourceGroupRuleConfiguration("readwrite",
"write_ds0,write_ds1", Arrays.asList("read_ds_0", "read_ds_1"), "foo");
+
assertThrows(InvalidReadwriteSplittingActualDataSourceInlineExpressionException.class,
() -> new ReadwriteSplittingRule("foo_db", new
ReadwriteSplittingRuleConfiguration(
+ Collections.singleton(config), Collections.singletonMap("bar",
new AlgorithmConfiguration("RANDOM", new Properties()))),
mock(ComputeNodeInstanceContext.class)));
+ }
+
+ @Test
+ void assertNewInstanceWithInvalidReadActualDataSourceInlineExpression() {
+ ReadwriteSplittingDataSourceGroupRuleConfiguration config =
+ new
ReadwriteSplittingDataSourceGroupRuleConfiguration("readwrite", "write_ds",
Arrays.asList("read_ds_0", "read_ds_1, read_ds_2"), "foo");
+
assertThrows(InvalidReadwriteSplittingActualDataSourceInlineExpressionException.class,
() -> new ReadwriteSplittingRule("foo_db", new
ReadwriteSplittingRuleConfiguration(
+ Collections.singleton(config), Collections.singletonMap("bar",
new AlgorithmConfiguration("RANDOM", new Properties()))),
mock(ComputeNodeInstanceContext.class)));
}
@Test
@@ -50,10 +61,17 @@ class ReadwriteSplittingRuleTest {
assertDataSourceGroupRule(createReadwriteSplittingRule().getSingleDataSourceGroupRule());
}
+ @Test
+ void assertFindDataSourceGroupRule() {
+ Optional<ReadwriteSplittingDataSourceGroupRule> actual =
createReadwriteSplittingRule().findDataSourceGroupRule("readwrite");
+ assertTrue(actual.isPresent());
+ assertDataSourceGroupRule(actual.get());
+ }
+
private ReadwriteSplittingRule createReadwriteSplittingRule() {
ReadwriteSplittingDataSourceGroupRuleConfiguration config =
new
ReadwriteSplittingDataSourceGroupRuleConfiguration("readwrite", "write_ds",
Arrays.asList("read_ds_0", "read_ds_1"), "random");
- return new ReadwriteSplittingRule("logic_db", new
ReadwriteSplittingRuleConfiguration(
+ return new ReadwriteSplittingRule("foo_db", new
ReadwriteSplittingRuleConfiguration(
Collections.singleton(config),
Collections.singletonMap("random", new AlgorithmConfiguration("RANDOM", new
Properties()))), mock(ComputeNodeInstanceContext.class));
}
@@ -98,7 +116,7 @@ class ReadwriteSplittingRuleTest {
"<GROOVY>${['write']}_ds",
Arrays.asList("<GROOVY>read_ds_${['0']}", "read_ds_${['1']}",
"read_ds_2", "<LITERAL>read_ds_3"),
"random");
- ReadwriteSplittingRule readwriteSplittingRule = new
ReadwriteSplittingRule("logic_db", new ReadwriteSplittingRuleConfiguration(
+ ReadwriteSplittingRule readwriteSplittingRule = new
ReadwriteSplittingRule("foo_db", new ReadwriteSplittingRuleConfiguration(
Collections.singleton(config),
Collections.singletonMap("random", new AlgorithmConfiguration("RANDOM", new
Properties()))), mock(ComputeNodeInstanceContext.class));
Optional<ReadwriteSplittingDataSourceGroupRule> actual =
readwriteSplittingRule.findDataSourceGroupRule("readwrite_ds");
assertTrue(actual.isPresent());