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 b181104c1e2 Remove useless ImportRuleConfigurationProvider's impl
(#30617)
b181104c1e2 is described below
commit b181104c1e20f764cce8fdb4759778373f6ad04f
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Mar 24 00:27:52 2024 +0800
Remove useless ImportRuleConfigurationProvider's impl (#30617)
* Remove useless ImportRuleConfigurationProvider's impl
* Remove useless ImportRuleConfigurationProvider's impl
* Remove useless ImportRuleConfigurationProvider's impl
---
.../EncryptImportRuleConfigurationProvider.java | 18 ++++++++---------
.../MaskImportRuleConfigurationProvider.java | 18 ++++++++---------
...teSplittingImportRuleConfigurationProvider.java | 16 ++++++---------
...littingImportRuleConfigurationProviderTest.java | 3 +++
.../ShadowImportRuleConfigurationProvider.java | 23 +++++++++++-----------
.../ShardingImportRuleConfigurationProvider.java | 16 +++++++--------
.../ImportDatabaseConfigurationExecutorTest.java | 2 ++
7 files changed, 48 insertions(+), 48 deletions(-)
diff --git
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
index e7fc1b91c92..256ef53fcf5 100644
---
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
+++
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
@@ -45,31 +45,31 @@ public final class EncryptImportRuleConfigurationProvider
implements ImportRuleC
if (null == database || null == ruleConfig) {
return;
}
- checkTables(ruleConfig, database.getName());
+ checkTables(database.getName(), ruleConfig);
checkEncryptors(ruleConfig);
- checkTableEncryptorsExisted(ruleConfig, database.getName());
+ checkTableEncryptorsExisted(database.getName(), ruleConfig);
}
- private void checkTables(final EncryptRuleConfiguration currentRuleConfig,
final String databaseName) {
- Collection<String> tableNames =
currentRuleConfig.getTables().stream().map(EncryptTableRuleConfiguration::getName).collect(Collectors.toList());
+ private void checkTables(final String databaseName, final
EncryptRuleConfiguration ruleConfig) {
+ Collection<String> tableNames =
ruleConfig.getTables().stream().map(EncryptTableRuleConfiguration::getName).collect(Collectors.toList());
Collection<String> duplicatedTables =
tableNames.stream().collect(Collectors.groupingBy(each -> each,
Collectors.counting())).entrySet().stream()
.filter(each -> each.getValue() >
1).map(Entry::getKey).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), ()
-> new DuplicateRuleException("ENCRYPT", databaseName, duplicatedTables));
}
- private void checkEncryptors(final EncryptRuleConfiguration
currentRuleConfig) {
- currentRuleConfig.getEncryptors().values().forEach(each ->
TypedSPILoader.checkService(EncryptAlgorithm.class, each.getType(),
each.getProps()));
+ private void checkEncryptors(final EncryptRuleConfiguration ruleConfig) {
+ ruleConfig.getEncryptors().values().forEach(each ->
TypedSPILoader.checkService(EncryptAlgorithm.class, each.getType(),
each.getProps()));
}
- private void checkTableEncryptorsExisted(final EncryptRuleConfiguration
config, final String databaseName) {
+ private void checkTableEncryptorsExisted(final String databaseName, final
EncryptRuleConfiguration ruleConfig) {
Collection<EncryptColumnRuleConfiguration> columns = new
LinkedList<>();
- config.getTables().forEach(each -> columns.addAll(each.getColumns()));
+ ruleConfig.getTables().forEach(each ->
columns.addAll(each.getColumns()));
Collection<String> notExistedEncryptors =
columns.stream().map(optional ->
optional.getCipher().getEncryptorName()).collect(Collectors.toList());
notExistedEncryptors.addAll(
columns.stream().map(optional ->
optional.getLikeQuery().map(EncryptColumnItemRuleConfiguration::getEncryptorName).orElse(null)).filter(Objects::nonNull).collect(Collectors.toList()));
notExistedEncryptors.addAll(columns.stream().map(optional ->
optional.getAssistedQuery().map(EncryptColumnItemRuleConfiguration::getEncryptorName).orElse(null)).filter(Objects::nonNull)
.collect(Collectors.toList()));
- Collection<String> encryptors = config.getEncryptors().keySet();
+ Collection<String> encryptors = ruleConfig.getEncryptors().keySet();
notExistedEncryptors.removeIf(encryptors::contains);
ShardingSpherePreconditions.checkState(notExistedEncryptors.isEmpty(),
() -> new MissingRequiredAlgorithmException(databaseName,
notExistedEncryptors));
}
diff --git
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
index a3ff992f525..a2b9dbc5320 100644
---
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
+++
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
@@ -42,26 +42,26 @@ public final class MaskImportRuleConfigurationProvider
implements ImportRuleConf
if (null == database || null == ruleConfig) {
return;
}
- checkTables(ruleConfig, database.getName());
+ checkTables(database.getName(), ruleConfig);
checkMaskAlgorithms(ruleConfig);
- checkMaskAlgorithmsExisted(ruleConfig, database.getName());
+ checkMaskAlgorithmsExisted(database.getName(), ruleConfig);
}
- private void checkTables(final MaskRuleConfiguration currentRuleConfig,
final String databaseName) {
- Collection<String> tableNames =
currentRuleConfig.getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList());
+ private void checkTables(final String databaseName, final
MaskRuleConfiguration ruleConfig) {
+ Collection<String> tableNames =
ruleConfig.getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList());
Collection<String> duplicatedTables =
tableNames.stream().collect(Collectors.groupingBy(each -> each,
Collectors.counting())).entrySet().stream()
.filter(each -> each.getValue() >
1).map(Entry::getKey).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), ()
-> new DuplicateRuleException("MASK", databaseName, duplicatedTables));
}
- private void checkMaskAlgorithms(final MaskRuleConfiguration
currentRuleConfig) {
- currentRuleConfig.getMaskAlgorithms().values().forEach(each ->
TypedSPILoader.checkService(MaskAlgorithm.class, each.getType(),
each.getProps()));
+ private void checkMaskAlgorithms(final MaskRuleConfiguration ruleConfig) {
+ ruleConfig.getMaskAlgorithms().values().forEach(each ->
TypedSPILoader.checkService(MaskAlgorithm.class, each.getType(),
each.getProps()));
}
- private void checkMaskAlgorithmsExisted(final MaskRuleConfiguration
currentRuleConfig, final String databaseName) {
- Collection<String> notExistedAlgorithms =
currentRuleConfig.getTables().stream()
+ private void checkMaskAlgorithmsExisted(final String databaseName, final
MaskRuleConfiguration ruleConfig) {
+ Collection<String> notExistedAlgorithms =
ruleConfig.getTables().stream()
.flatMap(each ->
each.getColumns().stream()).map(MaskColumnRuleConfiguration::getMaskAlgorithm).collect(Collectors.toList());
-
notExistedAlgorithms.removeIf(currentRuleConfig.getMaskAlgorithms().keySet()::contains);
+
notExistedAlgorithms.removeIf(ruleConfig.getMaskAlgorithms().keySet()::contains);
ShardingSpherePreconditions.checkState(notExistedAlgorithms.isEmpty(),
() -> new MissingRequiredAlgorithmException(databaseName,
notExistedAlgorithms));
}
diff --git
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
index 955fd35037f..9d6e67d5041 100644
---
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
+++
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
@@ -28,8 +28,8 @@ import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleCo
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import java.util.Collection;
-import java.util.HashSet;
import java.util.LinkedHashSet;
+import java.util.stream.Collectors;
/**
* Readwrite-splitting import rule configuration provider.
@@ -45,9 +45,9 @@ public final class
ReadwriteSplittingImportRuleConfigurationProvider implements
checkLoadBalancers(ruleConfig);
}
- private void checkDataSources(final ShardingSphereDatabase database, final
ReadwriteSplittingRuleConfiguration currentRuleConfig) {
+ private void checkDataSources(final ShardingSphereDatabase database, final
ReadwriteSplittingRuleConfiguration ruleConfig) {
Collection<String> requiredDataSources = new LinkedHashSet<>();
- for (ReadwriteSplittingDataSourceRuleConfiguration each :
currentRuleConfig.getDataSources()) {
+ for (ReadwriteSplittingDataSourceRuleConfiguration each :
ruleConfig.getDataSources()) {
if (null != each.getWriteDataSourceName()) {
requiredDataSources.add(each.getWriteDataSourceName());
}
@@ -62,15 +62,11 @@ public final class
ReadwriteSplittingImportRuleConfigurationProvider implements
}
private Collection<String> getLogicDataSources(final
ShardingSphereDatabase database) {
- Collection<String> result = new HashSet<>();
- for (DataSourceMapperRuleAttribute each :
database.getRuleMetaData().getAttributes(DataSourceMapperRuleAttribute.class)) {
- result.addAll(each.getDataSourceMapper().keySet());
- }
- return result;
+ return
database.getRuleMetaData().getAttributes(DataSourceMapperRuleAttribute.class).stream().flatMap(each
-> each.getDataSourceMapper().keySet().stream()).collect(Collectors.toSet());
}
- private void checkLoadBalancers(final ReadwriteSplittingRuleConfiguration
currentRuleConfig) {
- currentRuleConfig.getLoadBalancers().values().forEach(each ->
TypedSPILoader.checkService(LoadBalanceAlgorithm.class, each.getType(),
each.getProps()));
+ private void checkLoadBalancers(final ReadwriteSplittingRuleConfiguration
ruleConfig) {
+ ruleConfig.getLoadBalancers().values().forEach(each ->
TypedSPILoader.checkService(LoadBalanceAlgorithm.class, each.getType(),
each.getProps()));
}
@Override
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
index a1ac1fdfddc..13275211ec5 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.readwritesplitting.distsql.handler.provider;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import
org.apache.shardingsphere.infra.rule.attribute.datasource.DataSourceMapperRuleAttribute;
import
org.apache.shardingsphere.infra.spi.exception.ServiceProviderNotFoundException;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
@@ -59,6 +60,7 @@ class ReadwriteSplittingImportRuleConfigurationProviderTest {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
Collection<String> dataSources = new LinkedList<>();
dataSources.add("su_1");
+
when(result.getRuleMetaData().getAttributes(DataSourceMapperRuleAttribute.class)).thenReturn(Collections.emptyList());
when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(dataSources);
return result;
}
@@ -73,6 +75,7 @@ class ReadwriteSplittingImportRuleConfigurationProviderTest {
private ShardingSphereDatabase mockDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+
when(result.getRuleMetaData().getAttributes(DataSourceMapperRuleAttribute.class)).thenReturn(Collections.emptyList());
when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
return result;
}
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
index 498b86278e1..e7be1cfce6a 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
@@ -42,23 +42,22 @@ public final class ShadowImportRuleConfigurationProvider
implements ImportRuleCo
if (null == database || null == ruleConfig) {
return;
}
- String databaseName = database.getName();
- checkDataSources(databaseName, database, ruleConfig);
- checkTables(ruleConfig, databaseName);
+ checkDataSources(database, ruleConfig);
+ checkTables(database.getName(), ruleConfig);
checkShadowAlgorithms(ruleConfig);
}
- private void checkDataSources(final String databaseName, final
ShardingSphereDatabase database, final ShadowRuleConfiguration
currentRuleConfig) {
- Collection<String> requiredResource =
getRequiredResources(currentRuleConfig);
+ private void checkDataSources(final ShardingSphereDatabase database, final
ShadowRuleConfiguration ruleConfig) {
+ Collection<String> requiredResource = getRequiredResources(ruleConfig);
Collection<String> notExistedResources =
database.getResourceMetaData().getNotExistedDataSources(requiredResource);
Collection<String> logicResources = getLogicDataSources(database);
notExistedResources.removeIf(logicResources::contains);
- ShardingSpherePreconditions.checkState(notExistedResources.isEmpty(),
() -> new MissingRequiredStorageUnitsException(databaseName,
notExistedResources));
+ ShardingSpherePreconditions.checkState(notExistedResources.isEmpty(),
() -> new MissingRequiredStorageUnitsException(database.getName(),
notExistedResources));
}
- private Collection<String> getRequiredResources(final
ShadowRuleConfiguration currentRuleConfig) {
+ private Collection<String> getRequiredResources(final
ShadowRuleConfiguration ruleConfig) {
Collection<String> result = new LinkedHashSet<>();
- currentRuleConfig.getDataSources().forEach(each -> {
+ ruleConfig.getDataSources().forEach(each -> {
if (null != each.getShadowDataSourceName()) {
result.add(each.getShadowDataSourceName());
}
@@ -77,15 +76,15 @@ public final class ShadowImportRuleConfigurationProvider
implements ImportRuleCo
return result;
}
- private void checkTables(final ShadowRuleConfiguration currentRuleConfig,
final String databaseName) {
- Collection<String> tableNames = currentRuleConfig.getTables().keySet();
+ private void checkTables(final String databaseName, final
ShadowRuleConfiguration ruleConfig) {
+ Collection<String> tableNames = ruleConfig.getTables().keySet();
Collection<String> duplicatedTables =
tableNames.stream().collect(Collectors.groupingBy(each -> each,
Collectors.counting())).entrySet().stream()
.filter(each -> each.getValue() >
1).map(Entry::getKey).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), ()
-> new DuplicateRuleException("SHADOW", databaseName, duplicatedTables));
}
- private void checkShadowAlgorithms(final ShadowRuleConfiguration
currentRuleConfig) {
- currentRuleConfig.getShadowAlgorithms().values().forEach(each ->
TypedSPILoader.checkService(ShadowAlgorithm.class, each.getType(),
each.getProps()));
+ private void checkShadowAlgorithms(final ShadowRuleConfiguration
ruleConfig) {
+ ruleConfig.getShadowAlgorithms().values().forEach(each ->
TypedSPILoader.checkService(ShadowAlgorithm.class, each.getType(),
each.getProps()));
}
@Override
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
index cdd256dc7ff..601891adc7f 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
@@ -57,26 +57,26 @@ public final class ShardingImportRuleConfigurationProvider
implements ImportRule
checkKeyGeneratorAlgorithms(ruleConfig.getKeyGenerators().values());
}
- private void checkLogicTables(final String databaseName, final
ShardingRuleConfiguration currentRuleConfig) {
- Collection<String> logicTables =
currentRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toList());
-
logicTables.addAll(currentRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
+ private void checkLogicTables(final String databaseName, final
ShardingRuleConfiguration ruleConfig) {
+ Collection<String> logicTables =
ruleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toList());
+
logicTables.addAll(ruleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
Set<String> duplicatedLogicTables =
logicTables.stream().collect(Collectors.groupingBy(each -> each,
Collectors.counting())).entrySet().stream()
.filter(each -> each.getValue() >
1).map(Entry::getKey).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(duplicatedLogicTables.isEmpty(), () ->
new DuplicateRuleException("sharding", databaseName, duplicatedLogicTables));
}
- private void checkDataSources(final ShardingSphereDatabase database, final
ShardingRuleConfiguration currentRuleConfig) {
- Collection<String> requiredDataSources =
getRequiredDataSources(currentRuleConfig);
+ private void checkDataSources(final ShardingSphereDatabase database, final
ShardingRuleConfiguration ruleConfig) {
+ Collection<String> requiredDataSources =
getRequiredDataSources(ruleConfig);
Collection<String> notExistedDataSources =
database.getResourceMetaData().getNotExistedDataSources(requiredDataSources);
Collection<String> logicDataSources = getLogicDataSources(database);
notExistedDataSources.removeIf(logicDataSources::contains);
ShardingSpherePreconditions.checkState(notExistedDataSources.isEmpty(), () ->
new MissingRequiredStorageUnitsException(database.getName(),
notExistedDataSources));
}
- private Collection<String> getRequiredDataSources(final
ShardingRuleConfiguration currentRuleConfig) {
+ private Collection<String> getRequiredDataSources(final
ShardingRuleConfiguration ruleConfig) {
Collection<String> result = new LinkedHashSet<>();
- currentRuleConfig.getTables().forEach(each ->
result.addAll(getDataSourceNames(each)));
- currentRuleConfig.getAutoTables().forEach(each ->
result.addAll(getDataSourceNames(each)));
+ ruleConfig.getTables().forEach(each ->
result.addAll(getDataSourceNames(each)));
+ ruleConfig.getAutoTables().forEach(each ->
result.addAll(getDataSourceNames(each)));
return result;
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
index dc252b214f3..efcc90c38af 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationExecutorTest.java
@@ -31,6 +31,7 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+import
org.apache.shardingsphere.infra.rule.attribute.datasource.DataSourceMapperRuleAttribute;
import
org.apache.shardingsphere.infra.spi.exception.ServiceProviderNotFoundException;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -148,6 +149,7 @@ class ImportDatabaseConfigurationExecutorTest {
StorageUnit storageUnit = mock(StorageUnit.class);
when(storageUnit.getDataSource()).thenReturn(new MockedDataSource());
when(database.getResourceMetaData().getStorageUnits()).thenReturn(new
HashMap<>(Collections.singletonMap("foo_ds", storageUnit)));
+
when(database.getRuleMetaData().getAttributes(DataSourceMapperRuleAttribute.class)).thenReturn(Collections.emptyList());
when(result.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap(databaseName,
database));
when(result.getMetaDataContexts().getMetaData().getDatabase(databaseName)).thenReturn(database);
when(result.getMetaDataContexts().getMetaData().getProps()).thenReturn(new
ConfigurationProperties(createProperties()));