This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 a0f4f344b4a Refactor UnregisterStorageUnitBackendHandlerTest (#28180)
a0f4f344b4a is described below
commit a0f4f344b4a1eda3195aa508b9e9c85f5818013c
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Aug 20 07:29:48 2023 +0800
Refactor UnregisterStorageUnitBackendHandlerTest (#28180)
* Refactor UnregisterStorageUnitBackendHandlerTest
* Refactor UnregisterStorageUnitBackendHandlerTest
* Refactor UnregisterStorageUnitBackendHandlerTest
* Refactor SingleStandardRouteEngineTest
---
.../metadata/data/loader/OracleMetaDataLoader.java | 4 ++--
.../route/engine/SingleStandardRouteEngineTest.java | 8 ++++----
.../admin/DatabaseAdminQueryBackendHandlerTest.java | 7 +++----
.../UnregisterStorageUnitBackendHandlerTest.java | 20 +++++++-------------
4 files changed, 16 insertions(+), 23 deletions(-)
diff --git
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
index 701f8909584..6c217492650 100644
---
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
+++
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
@@ -118,8 +118,8 @@ public final class OracleMetaDataLoader implements
DialectMetaDataLoader {
boolean primaryKey = primaryKeys.contains(columnName);
boolean generated = versionContainsIdentityColumn(databaseMetaData) &&
"YES".equals(resultSet.getString("IDENTITY_COLUMN"));
// TODO need to support caseSensitive when version < 12.2.
- String collation = resultSet.getString("COLLATION");
- boolean caseSensitive = versionContainsCollation(databaseMetaData) &&
null != collation && collation.endsWith("_CS");
+ String collation = versionContainsCollation(databaseMetaData) ?
resultSet.getString("COLLATION") : null;
+ boolean caseSensitive = null != collation && collation.endsWith("_CS");
boolean isVisible = "NO".equals(resultSet.getString("HIDDEN_COLUMN"));
boolean nullable = "Y".equals(resultSet.getString("NULLABLE"));
return new ColumnMetaData(columnName, dataTypeMap.get(dataType),
primaryKey, generated, caseSensitive, isVisible, false, nullable);
diff --git
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngineTest.java
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngineTest.java
index 414193b9e3c..55c072e28cb 100644
---
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngineTest.java
+++
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngineTest.java
@@ -61,8 +61,8 @@ class SingleStandardRouteEngineTest {
void assertRouteInSameDataSource() throws SQLException {
SingleStandardRouteEngine engine = new
SingleStandardRouteEngine(mockQualifiedTables(), null);
SingleRule singleRule = new SingleRule(new SingleRuleConfiguration(),
DefaultDatabase.LOGIC_NAME, createDataSourceMap(), Collections.emptyList());
- singleRule.getSingleTableDataNodes().put("t_order",
Collections.singletonList(mockDataNode("t_order")));
- singleRule.getSingleTableDataNodes().put("t_order_item",
Collections.singletonList(mockDataNode("t_order_item")));
+ singleRule.getSingleTableDataNodes().put("t_order",
Collections.singleton(mockDataNode("t_order")));
+ singleRule.getSingleTableDataNodes().put("t_order_item",
Collections.singleton(mockDataNode("t_order_item")));
RouteContext routeContext = new RouteContext();
engine.route(routeContext, singleRule);
List<RouteUnit> routeUnits = new
ArrayList<>(routeContext.getRouteUnits());
@@ -130,13 +130,13 @@ class SingleStandardRouteEngineTest {
@Test
void assertRouteDuplicateSingleTable() {
- SingleStandardRouteEngine engine = new
SingleStandardRouteEngine(Collections.singletonList(new
QualifiedTable(DefaultDatabase.LOGIC_NAME, "t_order")), mockStatement(false));
+ SingleStandardRouteEngine engine = new
SingleStandardRouteEngine(Collections.singleton(new
QualifiedTable(DefaultDatabase.LOGIC_NAME, "t_order")), mockStatement(false));
assertThrows(TableExistsException.class, () -> engine.route(new
RouteContext(), mockSingleRule()));
}
@Test
void assertRouteIfNotExistsDuplicateSingleTable() {
- SingleStandardRouteEngine engine = new
SingleStandardRouteEngine(Collections.singletonList(new
QualifiedTable(DefaultDatabase.LOGIC_NAME, "t_order")), mockStatement(true));
+ SingleStandardRouteEngine engine = new
SingleStandardRouteEngine(Collections.singleton(new
QualifiedTable(DefaultDatabase.LOGIC_NAME, "t_order")), mockStatement(true));
assertDoesNotThrow(() -> engine.route(new RouteContext(),
mockSingleRule()));
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
index 0fe8a64323f..00b8a63611d 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
@@ -112,9 +112,8 @@ class DatabaseAdminQueryBackendHandlerTest {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
when(database.getProtocolType()).thenReturn(databaseType);
when(ProxyContext.getInstance().getDatabase("foo_db")).thenReturn(database);
- MetaDataContexts metaDataContexts = new
MetaDataContexts(mock(MetaDataPersistService.class), new ShardingSphereMetaData(
- Collections.singletonMap("foo_db", database),
mock(ResourceMetaData.class),
- mock(RuleMetaData.class), new ConfigurationProperties(new
Properties())));
- return new ContextManager(metaDataContexts,
mock(InstanceContext.class));
+ ShardingSphereMetaData metaData = new
ShardingSphereMetaData(Collections.singletonMap("foo_db", database),
mock(ResourceMetaData.class),
+ mock(RuleMetaData.class), new ConfigurationProperties(new
Properties()));
+ return new ContextManager(new
MetaDataContexts(mock(MetaDataPersistService.class), metaData),
mock(InstanceContext.class));
}
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
index 3812b371fa6..6392967e4c1 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
@@ -27,8 +27,6 @@ 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.storage.StorageUnit;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-import
org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
-import
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
@@ -41,6 +39,7 @@ import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
@@ -62,7 +61,7 @@ import static org.mockito.Mockito.when;
@MockitoSettings(strictness = Strictness.LENIENT)
class UnregisterStorageUnitBackendHandlerTest {
- @Mock
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ShardingSphereDatabase database;
@Mock
@@ -71,9 +70,6 @@ class UnregisterStorageUnitBackendHandlerTest {
@Mock
private DataSource dataSource;
- @Mock
- private RuleMetaData ruleMetaData;
-
@Mock
private ShadowRule shadowRule;
@@ -91,7 +87,6 @@ class UnregisterStorageUnitBackendHandlerTest {
void setUp() {
resourceMetaData = mock(ResourceMetaData.class, RETURNS_DEEP_STUBS);
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
- when(database.getRuleMetaData()).thenReturn(ruleMetaData);
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
@@ -129,7 +124,7 @@ class UnregisterStorageUnitBackendHandlerTest {
@Test
void assertStorageUnitNameInUseExecute() {
-
when(ruleMetaData.findRules(DataSourceContainedRule.class)).thenReturn(Collections.singleton(shadowRule));
+ when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(shadowRule)));
when(shadowRule.getDataSourceMapper()).thenReturn(Collections.singletonMap("",
Collections.singleton("foo_ds")));
StorageUnit storageUnit = mock(StorageUnit.class);
when(storageUnit.getDataSource()).thenReturn(dataSource);
@@ -142,7 +137,7 @@ class UnregisterStorageUnitBackendHandlerTest {
@Test
void assertStorageUnitNameInUseWithoutIgnoreSingleTables() {
-
when(ruleMetaData.findRules(DataNodeContainedRule.class)).thenReturn(Collections.singleton(singleRule));
+ when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(singleRule)));
DataNode dataNode = mock(DataNode.class);
when(dataNode.getDataSourceName()).thenReturn("foo_ds");
when(singleRule.getAllDataNodes()).thenReturn(Collections.singletonMap("",
Collections.singleton(dataNode)));
@@ -151,13 +146,12 @@ class UnregisterStorageUnitBackendHandlerTest {
when(resourceMetaData.getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
storageUnit));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
- assertThrows(StorageUnitInUsedException.class,
- () -> handler.execute("foo_db", new
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false)));
+ assertThrows(StorageUnitInUsedException.class, () ->
handler.execute("foo_db", new
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false)));
}
@Test
void assertStorageUnitNameInUseIgnoreSingleTables() throws SQLException {
-
when(ruleMetaData.findRules(DataNodeContainedRule.class)).thenReturn(Collections.singleton(singleRule));
+ when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(singleRule)));
DataNode dataNode = mock(DataNode.class);
when(dataNode.getDataSourceName()).thenReturn("foo_ds");
when(singleRule.getAllDataNodes()).thenReturn(Collections.singletonMap("",
Collections.singleton(dataNode)));
@@ -180,7 +174,7 @@ class UnregisterStorageUnitBackendHandlerTest {
@Test
void assertStorageUnitNameInUseWithIfExists() {
-
when(ruleMetaData.findRules(DataSourceContainedRule.class)).thenReturn(Collections.singleton(shadowRule));
+ when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(shadowRule)));
when(shadowRule.getDataSourceMapper()).thenReturn(Collections.singletonMap("",
Collections.singleton("foo_ds")));
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
UnregisterStorageUnitStatement unregisterStorageUnitStatement = new
UnregisterStorageUnitStatement(true, Collections.singleton("foo_ds"), true);