This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 df832a4793d Refactor YamlShardingRuleConfigurationSwapperTest (#19925)
df832a4793d is described below
commit df832a4793d2789655c06992ae5846d9b4f767ee
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Aug 6 16:40:47 2022 +0800
Refactor YamlShardingRuleConfigurationSwapperTest (#19925)
---
.../YamlShardingRuleConfigurationSwapperTest.java | 146 ++++++---------------
1 file changed, 41 insertions(+), 105 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/YamlShardingRuleConfigurationSwapperTest.java
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/YamlShardingRuleConfigurationSwapperTest.java
index 5302cb30066..07091822e77 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/YamlShardingRuleConfigurationSwapperTest.java
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/YamlShardingRuleConfigurationSwapperTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.sharding.yaml.swapper;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import
org.apache.shardingsphere.infra.yaml.config.swapper.YamlConfigurationSwapper;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
@@ -29,99 +28,25 @@ import
org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfigur
import
org.apache.shardingsphere.sharding.yaml.config.strategy.audit.YamlShardingAuditStrategyConfiguration;
import
org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration;
import
org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration;
-import
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableRuleConfigurationSwapper;
-import
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlKeyGenerateStrategyConfigurationSwapper;
-import
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingAuditStrategyConfigurationSwapper;
-import
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStrategyConfigurationSwapper;
-import org.junit.Before;
+import
org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfiguration;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentMatchers;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
import java.io.File;
import java.io.IOException;
-import java.lang.reflect.Field;
import java.net.URL;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-@RunWith(MockitoJUnitRunner.class)
public final class YamlShardingRuleConfigurationSwapperTest {
- @Mock
- private YamlShardingTableRuleConfigurationSwapper
tableRuleConfigurationSwapper;
-
- @Mock
- private YamlShardingStrategyConfigurationSwapper
shardingStrategyConfigSwapper;
-
- @Mock
- private YamlKeyGenerateStrategyConfigurationSwapper
keyGenerateStrategyConfigSwapper;
-
- @Mock
- private YamlShardingAuditStrategyConfigurationSwapper
shardingAuditStrategyConfigSwapper;
-
- private final YamlShardingRuleConfigurationSwapper
shardingRuleConfigSwapper = new YamlShardingRuleConfigurationSwapper();
-
- @Before
- public void setUp() throws ReflectiveOperationException {
- setSwapper("tableSwapper", tableRuleConfigurationSwapper);
-
when(tableRuleConfigurationSwapper.swapToYamlConfiguration(ArgumentMatchers.any())).thenReturn(mock(YamlTableRuleConfiguration.class));
-
when(tableRuleConfigurationSwapper.swapToObject(ArgumentMatchers.any())).thenReturn(mock(ShardingTableRuleConfiguration.class));
- setSwapper("shardingStrategySwapper", shardingStrategyConfigSwapper);
-
when(shardingStrategyConfigSwapper.swapToYamlConfiguration(ArgumentMatchers.any())).thenReturn(mock(YamlShardingStrategyConfiguration.class));
-
when(shardingStrategyConfigSwapper.swapToObject(ArgumentMatchers.any())).thenReturn(mock(ShardingStrategyConfiguration.class));
- setSwapper("keyGenerateStrategySwapper",
keyGenerateStrategyConfigSwapper);
-
when(keyGenerateStrategyConfigSwapper.swapToYamlConfiguration(ArgumentMatchers.any())).thenReturn(mock(YamlKeyGenerateStrategyConfiguration.class));
-
when(keyGenerateStrategyConfigSwapper.swapToObject(ArgumentMatchers.any())).thenReturn(mock(KeyGenerateStrategyConfiguration.class));
- setSwapper("auditStrategySwapper", shardingAuditStrategyConfigSwapper);
-
when(shardingAuditStrategyConfigSwapper.swapToYamlConfiguration(ArgumentMatchers.any())).thenReturn(mock(YamlShardingAuditStrategyConfiguration.class));
-
when(shardingAuditStrategyConfigSwapper.swapToObject(ArgumentMatchers.any())).thenReturn(mock(ShardingAuditStrategyConfiguration.class));
- }
-
- private void setSwapper(final String swapperFieldName, final
YamlConfigurationSwapper swapperFieldValue) throws ReflectiveOperationException
{
- Field field =
YamlShardingRuleConfigurationSwapper.class.getDeclaredField(swapperFieldName);
- field.setAccessible(true);
- field.set(shardingRuleConfigSwapper, swapperFieldValue);
- }
+ private final YamlShardingRuleConfigurationSwapper swapper = new
YamlShardingRuleConfigurationSwapper();
@Test
- public void assertSwapToYamlWithMinProperties() {
- ShardingRuleConfiguration shardingRuleConfig = new
ShardingRuleConfiguration();
-
shardingRuleConfig.getTables().add(mock(ShardingTableRuleConfiguration.class));
- YamlShardingRuleConfiguration actual =
shardingRuleConfigSwapper.swapToYamlConfiguration(shardingRuleConfig);
- assertThat(actual.getTables().size(), is(1));
- assertTrue(actual.getBindingTables().isEmpty());
- assertTrue(actual.getBroadcastTables().isEmpty());
- assertNull(actual.getDefaultDatabaseStrategy());
- assertNull(actual.getDefaultTableStrategy());
- assertNull(actual.getDefaultKeyGenerateStrategy());
- assertNull(actual.getDefaultShardingColumn());
- assertNull(actual.getDefaultShardingColumn());
- assertNull(actual.getScalingName());
- assertTrue(actual.getScaling().isEmpty());
- }
-
- @Test
- public void assertSwapToYamlWithMaxProperties() {
- ShardingRuleConfiguration shardingRuleConfig = new
ShardingRuleConfiguration();
-
shardingRuleConfig.getTables().add(mock(ShardingTableRuleConfiguration.class));
- shardingRuleConfig.getBindingTableGroups().add("tbl, sub_tbl");
- shardingRuleConfig.getBroadcastTables().add("dict");
-
shardingRuleConfig.setDefaultDatabaseShardingStrategy(mock(ShardingStrategyConfiguration.class));
-
shardingRuleConfig.setDefaultTableShardingStrategy(mock(ShardingStrategyConfiguration.class));
-
shardingRuleConfig.setDefaultTableShardingStrategy(mock(ShardingStrategyConfiguration.class));
-
shardingRuleConfig.setDefaultKeyGenerateStrategy(mock(KeyGenerateStrategyConfiguration.class));
-
shardingRuleConfig.setDefaultAuditStrategy(mock(ShardingAuditStrategyConfiguration.class));
- shardingRuleConfig.setDefaultShardingColumn("user_id");
- YamlShardingRuleConfiguration actual =
shardingRuleConfigSwapper.swapToYamlConfiguration(shardingRuleConfig);
+ public void assertSwapToYamlConfiguration() {
+ YamlShardingRuleConfiguration actual =
swapper.swapToYamlConfiguration(createShardingRuleConfiguration());
assertThat(actual.getTables().size(), is(1));
assertThat(actual.getBindingTables().size(), is(1));
assertThat(actual.getBindingTables().iterator().next(), is("tbl,
sub_tbl"));
@@ -134,33 +59,23 @@ public final class
YamlShardingRuleConfigurationSwapperTest {
assertThat(actual.getDefaultShardingColumn(), is("user_id"));
}
- @Test
- public void assertSwapToObjectWithMinProperties() {
- YamlShardingRuleConfiguration yamlConfig = new
YamlShardingRuleConfiguration();
- yamlConfig.getTables().put("tbl",
mock(YamlTableRuleConfiguration.class));
- ShardingRuleConfiguration actual =
shardingRuleConfigSwapper.swapToObject(yamlConfig);
- assertThat(actual.getTables().size(), is(1));
- assertTrue(actual.getBindingTableGroups().isEmpty());
- assertTrue(actual.getBroadcastTables().isEmpty());
- assertNull(actual.getDefaultDatabaseShardingStrategy());
- assertNull(actual.getDefaultTableShardingStrategy());
- assertNull(actual.getDefaultKeyGenerateStrategy());
- assertNull(actual.getDefaultAuditStrategy());
- assertNull(actual.getDefaultShardingColumn());
+ private ShardingRuleConfiguration createShardingRuleConfiguration() {
+ ShardingRuleConfiguration result = new ShardingRuleConfiguration();
+ result.getTables().add(mock(ShardingTableRuleConfiguration.class));
+ result.getBindingTableGroups().add("tbl, sub_tbl");
+ result.getBroadcastTables().add("dict");
+
result.setDefaultDatabaseShardingStrategy(mock(ShardingStrategyConfiguration.class));
+
result.setDefaultTableShardingStrategy(mock(ShardingStrategyConfiguration.class));
+
result.setDefaultTableShardingStrategy(mock(ShardingStrategyConfiguration.class));
+
result.setDefaultKeyGenerateStrategy(mock(KeyGenerateStrategyConfiguration.class));
+
result.setDefaultAuditStrategy(mock(ShardingAuditStrategyConfiguration.class));
+ result.setDefaultShardingColumn("user_id");
+ return result;
}
@Test
- public void assertSwapToObjectWithMaxProperties() {
- YamlShardingRuleConfiguration yamlConfig = new
YamlShardingRuleConfiguration();
- yamlConfig.getTables().put("tbl",
mock(YamlTableRuleConfiguration.class));
- yamlConfig.getBindingTables().add("tbl, sub_tbl");
- yamlConfig.getBroadcastTables().add("dict");
-
yamlConfig.setDefaultDatabaseStrategy(mock(YamlShardingStrategyConfiguration.class));
-
yamlConfig.setDefaultTableStrategy(mock(YamlShardingStrategyConfiguration.class));
-
yamlConfig.setDefaultKeyGenerateStrategy(mock(YamlKeyGenerateStrategyConfiguration.class));
-
yamlConfig.setDefaultAuditStrategy(mock(YamlShardingAuditStrategyConfiguration.class));
- yamlConfig.setDefaultShardingColumn("user_id");
- ShardingRuleConfiguration actual =
shardingRuleConfigSwapper.swapToObject(yamlConfig);
+ public void assertSwapToObject() {
+ ShardingRuleConfiguration actual =
swapper.swapToObject(createYamlShardingRuleConfiguration());
assertThat(actual.getTables().size(), is(1));
assertThat(actual.getBindingTableGroups().size(), is(1));
assertThat(actual.getBindingTableGroups().iterator().next(), is("tbl,
sub_tbl"));
@@ -173,13 +88,34 @@ public final class
YamlShardingRuleConfigurationSwapperTest {
assertThat(actual.getDefaultShardingColumn(), is("user_id"));
}
+ private YamlShardingRuleConfiguration
createYamlShardingRuleConfiguration() {
+ YamlShardingRuleConfiguration result = new
YamlShardingRuleConfiguration();
+ YamlTableRuleConfiguration yamlTableRuleConfig = new
YamlTableRuleConfiguration();
+ yamlTableRuleConfig.setLogicTable("tbl");
+ result.getTables().put("tbl", yamlTableRuleConfig);
+ result.getBindingTables().add("tbl, sub_tbl");
+ result.getBroadcastTables().add("dict");
+ YamlShardingStrategyConfiguration yamlShardingStrategyConfig = new
YamlShardingStrategyConfiguration();
+ YamlStandardShardingStrategyConfiguration
yamlStandardShardingStrategyConfig = new
YamlStandardShardingStrategyConfiguration();
+
yamlStandardShardingStrategyConfig.setShardingAlgorithmName("foo_sharding_algo");
+
yamlShardingStrategyConfig.setStandard(yamlStandardShardingStrategyConfig);
+ result.setDefaultDatabaseStrategy(yamlShardingStrategyConfig);
+ result.setDefaultTableStrategy(yamlShardingStrategyConfig);
+ YamlKeyGenerateStrategyConfiguration yamlKeyGenerateStrategyConfig =
new YamlKeyGenerateStrategyConfiguration();
+ yamlKeyGenerateStrategyConfig.setColumn("col");
+ result.setDefaultKeyGenerateStrategy(yamlKeyGenerateStrategyConfig);
+
result.setDefaultAuditStrategy(mock(YamlShardingAuditStrategyConfiguration.class));
+ result.setDefaultShardingColumn("user_id");
+ return result;
+ }
+
@Test
public void assertScalingSwap() throws IOException {
URL url =
getClass().getClassLoader().getResource("yaml/sharding-scaling.yaml");
assertNotNull(url);
YamlShardingRuleConfiguration yamlConfig = YamlEngine.unmarshal(new
File(url.getFile()), YamlShardingRuleConfiguration.class);
- ShardingRuleConfiguration actualConfig =
shardingRuleConfigSwapper.swapToObject(yamlConfig);
- YamlShardingRuleConfiguration actualYamlConfig =
shardingRuleConfigSwapper.swapToYamlConfiguration(actualConfig);
+ ShardingRuleConfiguration actualConfig =
swapper.swapToObject(yamlConfig);
+ YamlShardingRuleConfiguration actualYamlConfig =
swapper.swapToYamlConfiguration(actualConfig);
assertThat(YamlEngine.marshal(actualYamlConfig),
is(YamlEngine.marshal(yamlConfig)));
}
}