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 8b5639cf6ba Add more test cases on BroadcastSQLRouterTest (#38217)
8b5639cf6ba is described below

commit 8b5639cf6ba38881aa70e5868c688bb8dc0d6bb4
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Feb 26 20:00:48 2026 +0800

    Add more test cases on BroadcastSQLRouterTest (#38217)
---
 .../broadcast/route/BroadcastSQLRouterTest.java    | 28 ++++++++++++++--------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git 
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
 
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
index ac34ad0cb41..a667b75c5c3 100644
--- 
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
+++ 
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
@@ -21,9 +21,9 @@ import 
org.apache.shardingsphere.broadcast.route.engine.BroadcastRouteEngineFact
 import 
org.apache.shardingsphere.broadcast.route.engine.type.BroadcastRouteEngine;
 import org.apache.shardingsphere.broadcast.rule.BroadcastRule;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.infra.route.SQLRouter;
+import org.apache.shardingsphere.infra.route.SQLRouter.Type;
+import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
 import org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader;
 import 
org.apache.shardingsphere.test.infra.framework.extension.mock.AutoMockExtension;
@@ -34,27 +34,35 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import java.util.Collections;
 import java.util.Properties;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(AutoMockExtension.class)
 @StaticMockSettings(BroadcastRouteEngineFactory.class)
 class BroadcastSQLRouterTest {
     
+    private final BroadcastRule rule = mock(BroadcastRule.class);
+    
+    private final BroadcastSQLRouter sqlRouter = (BroadcastSQLRouter) 
OrderedSPILoader.getServices(SQLRouter.class, 
Collections.singleton(rule)).get(rule);
+    
     @Test
-    void assertCreateRouteContext() {
+    void assertCreateRouteContextWhenBroadcastTableNamesAreNotEmpty() {
         QueryContext queryContext = mock(QueryContext.class);
-        BroadcastRule rule = mock(BroadcastRule.class);
         
when(rule.getBroadcastTableNames(Collections.singleton("t_config"))).thenReturn(Collections.singleton("t_config"));
-        ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
         BroadcastRouteEngine routeEngine = mock(BroadcastRouteEngine.class);
         when(BroadcastRouteEngineFactory.newInstance(queryContext, 
Collections.singleton("t_config"))).thenReturn(routeEngine);
-        getSQLRouter(rule).createRouteContext(queryContext, 
mock(RuleMetaData.class), database, rule, Collections.singleton("t_config"), 
new ConfigurationProperties(new Properties()));
-        verify(routeEngine).route(rule);
+        RouteContext expectedRouteContext = mock(RouteContext.class);
+        when(routeEngine.route(rule)).thenReturn(expectedRouteContext);
+        assertThat(sqlRouter.createRouteContext(queryContext, mock(), mock(), 
rule, Collections.singleton("t_config"), new ConfigurationProperties(new 
Properties())), is(expectedRouteContext));
+        assertThat(sqlRouter.getType(), is(Type.DATA_NODE));
     }
     
-    private BroadcastSQLRouter getSQLRouter(final BroadcastRule rule) {
-        return (BroadcastSQLRouter) 
OrderedSPILoader.getServices(SQLRouter.class, 
Collections.singleton(rule)).get(rule);
+    @Test
+    void assertCreateRouteContextWhenBroadcastTableNamesAreEmpty() {
+        
when(rule.getBroadcastTableNames(Collections.singleton("t_config"))).thenReturn(Collections.emptySet());
+        assertTrue(sqlRouter.createRouteContext(mock(), mock(), mock(), rule, 
Collections.singleton("t_config"), new ConfigurationProperties(new 
Properties())).getRouteUnits().isEmpty());
     }
 }

Reply via email to