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 ee70a1b9f18 Fix sonar issue of TokenUtilsTest (#25671)
ee70a1b9f18 is described below

commit ee70a1b9f18748c6e9ac2f4e884f64e8f9b2ace8
Author: Liang Zhang <[email protected]>
AuthorDate: Mon May 15 12:25:44 2023 +0800

    Fix sonar issue of TokenUtilsTest (#25671)
---
 .../rewrite/token/pojo/ConstraintToken.java        |  2 +-
 .../sharding/rewrite/token/pojo/CursorToken.java   |  2 +-
 .../sharding/rewrite/token/pojo/IndexToken.java    |  2 +-
 .../sharding/rewrite/token/pojo/TableToken.java    |  2 +-
 .../sharding/rewrite/token/pojo/TokenUtils.java    |  6 +++---
 .../rewrite/token/pojo/TokenUtilsTest.java         | 25 ++++++++++++++++------
 6 files changed, 26 insertions(+), 13 deletions(-)

diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java
index 38146e854c3..2c79b8b57f0 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java
@@ -57,7 +57,7 @@ public final class ConstraintToken extends SQLToken 
implements Substitutable, Ro
     
     private String getConstraintValue(final RouteUnit routeUnit) {
         StringBuilder result = new StringBuilder(identifier.getValue());
-        Map<String, String> logicAndActualTables = 
TokenUtils.getLogicAndActualTables(routeUnit, sqlStatementContext, 
shardingRule);
+        Map<String, String> logicAndActualTables = 
TokenUtils.getLogicAndActualTableMap(routeUnit, sqlStatementContext, 
shardingRule);
         
sqlStatementContext.getTablesContext().getTableNames().stream().findFirst().map(optional
 -> logicAndActualTables.get(optional.toLowerCase()))
                 .ifPresent(optional -> result.append('_').append(optional));
         return result.toString();
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/CursorToken.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/CursorToken.java
index 7541f77386e..5e0884713d9 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/CursorToken.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/CursorToken.java
@@ -58,7 +58,7 @@ public final class CursorToken extends SQLToken implements 
Substitutable, RouteU
     }
     
     private String getCursorValue(final RouteUnit routeUnit) {
-        Map<String, String> logicAndActualTables = 
TokenUtils.getLogicAndActualTables(routeUnit, sqlStatementContext, 
shardingRule);
+        Map<String, String> logicAndActualTables = 
TokenUtils.getLogicAndActualTableMap(routeUnit, sqlStatementContext, 
shardingRule);
         String actualTableName = logicAndActualTables.isEmpty() ? null : 
logicAndActualTables.values().iterator().next();
         return Strings.isNullOrEmpty(actualTableName) ? identifier.getValue() 
: identifier.getValue() + "_" + actualTableName;
     }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/IndexToken.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/IndexToken.java
index 64088f713fc..aa708480bcc 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/IndexToken.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/IndexToken.java
@@ -69,7 +69,7 @@ public final class IndexToken extends SQLToken implements 
Substitutable, RouteUn
     }
     
     private String getIndexValue(final RouteUnit routeUnit) {
-        Map<String, String> logicAndActualTables = 
TokenUtils.getLogicAndActualTables(routeUnit, sqlStatementContext, 
shardingRule);
+        Map<String, String> logicAndActualTables = 
TokenUtils.getLogicAndActualTableMap(routeUnit, sqlStatementContext, 
shardingRule);
         String actualTableName = 
findLogicTableNameFromMetaData(identifier.getValue()).map(logicAndActualTables::get)
                 .orElseGet(() -> 
logicAndActualTables.values().stream().findFirst().orElse(null));
         return IndexMetaDataUtils.getActualIndexName(identifier.getValue(), 
actualTableName);
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TableToken.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TableToken.java
index f4d86a3f4cc..ce7c6a5cb63 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TableToken.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TableToken.java
@@ -50,7 +50,7 @@ public final class TableToken extends SQLToken implements 
Substitutable, RouteUn
     
     @Override
     public String toString(final RouteUnit routeUnit) {
-        String actualTableName = TokenUtils.getLogicAndActualTables(routeUnit, 
sqlStatementContext, shardingRule).get(tableName.getValue().toLowerCase());
+        String actualTableName = 
TokenUtils.getLogicAndActualTableMap(routeUnit, sqlStatementContext, 
shardingRule).get(tableName.getValue().toLowerCase());
         actualTableName = null == actualTableName ? 
tableName.getValue().toLowerCase() : actualTableName;
         return tableName.getQuoteCharacter().wrap(actualTableName);
     }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtils.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtils.java
index 75ea35900f1..cf2666cad65 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtils.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtils.java
@@ -29,20 +29,20 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * Token utility class.
+ * Token utils.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class TokenUtils {
     
     /**
-     * Get logic table and actual table.
+     * Get logic and actual table map.
      * 
      * @param routeUnit route unit
      * @param sqlStatementContext SQL statement context
      * @param shardingRule sharding rule
      * @return key is logic table name, values is actual table belong to this 
data source
      */
-    public static Map<String, String> getLogicAndActualTables(final RouteUnit 
routeUnit, final SQLStatementContext<?> sqlStatementContext, final ShardingRule 
shardingRule) {
+    public static Map<String, String> getLogicAndActualTableMap(final 
RouteUnit routeUnit, final SQLStatementContext<?> sqlStatementContext, final 
ShardingRule shardingRule) {
         Collection<String> tableNames = 
sqlStatementContext.getTablesContext().getTableNames();
         Map<String, String> result = new HashMap<>(tableNames.size(), 1);
         for (RouteMapper each : routeUnit.getTableMappers()) {
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtilsTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtilsTest.java
index 0b05624c532..e227c36f0e9 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtilsTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/TokenUtilsTest.java
@@ -24,26 +24,39 @@ import 
org.apache.shardingsphere.infra.route.context.RouteUnit;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.jupiter.api.Test;
 
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 class TokenUtilsTest {
     
     @Test
     void assertGetLogicAndActualTablesFromRouteUnit() {
-        assertThat(TokenUtils.getLogicAndActualTables(getRouteUnit(), 
mock(SQLStatementContext.class, RETURNS_DEEP_STUBS), 
mock(ShardingRule.class)).get("logic_order_table"), is("table_order_0"));
+        Map<String, String> actual = 
TokenUtils.getLogicAndActualTableMap(getRouteUnit(), mockSQLStatementContext(), 
mockShardingRule());
+        assertThat(actual.get("foo_table"), is("foo_table_0"));
+        assertThat(actual.get("bar_table"), is("bar_table_0"));
     }
     
-    @Test
-    void assertGetLogicAndActualTablesFromShardingRule() {
-        // TODO add more test case
+    private RouteUnit getRouteUnit() {
+        return new RouteUnit(new RouteMapper(DefaultDatabase.LOGIC_NAME, 
"ds_0"), Collections.singleton(new RouteMapper("foo_table", "foo_table_0")));
     }
     
-    private RouteUnit getRouteUnit() {
-        return new RouteUnit(new RouteMapper(DefaultDatabase.LOGIC_NAME, 
"ds_0"), Collections.singleton(new RouteMapper("LOGIC_ORDER_TABLE", 
"table_order_0")));
+    private static SQLStatementContext<?> mockSQLStatementContext() {
+        SQLStatementContext<?> result = mock(SQLStatementContext.class, 
RETURNS_DEEP_STUBS);
+        
when(result.getTablesContext().getTableNames()).thenReturn(Arrays.asList("foo_table",
 "bar_table"));
+        return result;
+    }
+    
+    private static ShardingRule mockShardingRule() {
+        ShardingRule result = mock(ShardingRule.class);
+        
when(result.getLogicAndActualTablesFromBindingTable(DefaultDatabase.LOGIC_NAME, 
"foo_table", "foo_table_0", Arrays.asList("foo_table", "bar_table")))
+                .thenReturn(Collections.singletonMap("bar_table", 
"bar_table_0"));
+        return result;
     }
 }

Reply via email to