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

Reply via email to