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 3024d9549d7 Add more tests on ReadwriteSplittingRuleStatementConverter
(#33576)
3024d9549d7 is described below
commit 3024d9549d703f559922fa1ccd3b2c8948c3018d
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Nov 7 00:09:59 2024 +0800
Add more tests on ReadwriteSplittingRuleStatementConverter (#33576)
---
...adwriteSplittingRuleStatementConverterTest.java | 46 +++++++---------------
1 file changed, 14 insertions(+), 32 deletions(-)
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/converter/ReadwriteSplittingRuleStatementConverterTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/converter/ReadwriteSplittingRuleStatementConverterTest.java
index 66eeb1f66e2..fb530b307bc 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/converter/ReadwriteSplittingRuleStatementConverterTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/converter/ReadwriteSplittingRuleStatementConverterTest.java
@@ -22,52 +22,34 @@ import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfigurat
import
org.apache.shardingsphere.readwritesplitting.config.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.config.rule.ReadwriteSplittingDataSourceGroupRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.distsql.segment.ReadwriteSplittingRuleSegment;
+import
org.apache.shardingsphere.readwritesplitting.transaction.TransactionalReadQueryStrategy;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
-import java.util.List;
-import java.util.Map;
import java.util.Properties;
-import static org.hamcrest.CoreMatchers.is;
+import static
org.apache.shardingsphere.test.matcher.ShardingSphereAssertionMatchers.deepEqual;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
class ReadwriteSplittingRuleStatementConverterTest {
@Test
- void assertEmptyRuleSegmentConvertResult() {
- ReadwriteSplittingRuleConfiguration
actualEmptyRuleSegmentConvertResult = ReadwriteSplittingRuleStatementConverter
- .convert(Collections.emptyList());
-
assertTrue(actualEmptyRuleSegmentConvertResult.getDataSourceGroups().isEmpty());
-
assertTrue(actualEmptyRuleSegmentConvertResult.getLoadBalancers().isEmpty());
+ void assertConvert() {
+ ReadwriteSplittingRuleConfiguration actual =
ReadwriteSplittingRuleStatementConverter.convert(Collections.singleton(new
ReadwriteSplittingRuleSegment(
+ "foo_name", "write_ds", Arrays.asList("read_ds0", "read_ds1"),
TransactionalReadQueryStrategy.FIXED.name(), new AlgorithmSegment("foo_algo",
new Properties()))));
+ assertThat(actual.getDataSourceGroups(),
deepEqual(Collections.singletonList(
+ new
ReadwriteSplittingDataSourceGroupRuleConfiguration("foo_name", "write_ds",
Arrays.asList("read_ds0", "read_ds1"), TransactionalReadQueryStrategy.FIXED,
"foo_name_foo_algo"))));
+ assertThat(actual.getLoadBalancers(),
deepEqual(Collections.singletonMap("foo_name_foo_algo", new
AlgorithmConfiguration("foo_algo", new Properties()))));
}
@Test
- void assertSingleRuleSegmentConvertResult() {
- ReadwriteSplittingRuleSegment
expectedSingleReadwriteSplittingRuleSegment =
createReadwriteSplittingRuleSegment("write_ds", Arrays.asList("read_ds_01",
"read_ds_02"),
- "static_load_balancer_type", new Properties());
- ReadwriteSplittingRuleConfiguration
actualSingleRuleSegmentConvertResult = ReadwriteSplittingRuleStatementConverter
-
.convert(Collections.singleton(expectedSingleReadwriteSplittingRuleSegment));
- Collection<ReadwriteSplittingDataSourceGroupRuleConfiguration>
actualSingleRuleSegmentConvertResultDataSourceGroups =
actualSingleRuleSegmentConvertResult.getDataSourceGroups();
- Map<String, AlgorithmConfiguration>
actualSingleRuleSegmentConvertResultLoadBalancers =
actualSingleRuleSegmentConvertResult.getLoadBalancers();
-
assertThat(actualSingleRuleSegmentConvertResultDataSourceGroups.size(), is(1));
- assertThat(actualSingleRuleSegmentConvertResultLoadBalancers.size(),
is(1));
- ReadwriteSplittingDataSourceGroupRuleConfiguration actualRuleConfig =
actualSingleRuleSegmentConvertResultDataSourceGroups.iterator().next();
- assertThat(actualRuleConfig.getName(),
is(expectedSingleReadwriteSplittingRuleSegment.getName()));
- String expectedLoadBalancerName = String.format("%s_%s",
expectedSingleReadwriteSplittingRuleSegment.getName(),
expectedSingleReadwriteSplittingRuleSegment.getLoadBalancer().getName());
- assertThat(actualRuleConfig.getLoadBalancerName(),
is(expectedLoadBalancerName));
- assertThat(actualRuleConfig.getWriteDataSourceName(),
is(expectedSingleReadwriteSplittingRuleSegment.getWriteDataSource()));
- assertThat(actualRuleConfig.getReadDataSourceNames(),
is(expectedSingleReadwriteSplittingRuleSegment.getReadDataSources()));
- AlgorithmConfiguration actualSphereAlgorithmConfig =
actualSingleRuleSegmentConvertResultLoadBalancers.get(expectedLoadBalancerName);
- assertThat(actualSphereAlgorithmConfig.getType(),
is(expectedSingleReadwriteSplittingRuleSegment.getLoadBalancer().getName()));
- assertThat(actualSphereAlgorithmConfig.getProps(),
is(expectedSingleReadwriteSplittingRuleSegment.getLoadBalancer().getProps()));
- }
-
- private ReadwriteSplittingRuleSegment
createReadwriteSplittingRuleSegment(final String writeDataSource, final
List<String> readDataSources,
-
final String loadBalancerTypeName, final Properties props) {
- return new ReadwriteSplittingRuleSegment("", writeDataSource,
readDataSources, new AlgorithmSegment(loadBalancerTypeName, props));
+ void assertConvertWithoutTransactionalReadQueryStrategyAndLoadBalancer() {
+ ReadwriteSplittingRuleConfiguration actual =
ReadwriteSplittingRuleStatementConverter.convert(
+ Collections.singleton(new
ReadwriteSplittingRuleSegment("foo_name", "write_ds", Arrays.asList("read_ds0",
"read_ds1"), null)));
+ assertThat(actual.getDataSourceGroups(),
deepEqual(Collections.singletonList(
+ new
ReadwriteSplittingDataSourceGroupRuleConfiguration("foo_name", "write_ds",
Arrays.asList("read_ds0", "read_ds1"), null))));
+ assertTrue(actual.getLoadBalancers().isEmpty());
}
}