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());

Reply via email to