This is an automated email from the ASF dual-hosted git repository. panjuan 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 4938b6db182 Add assert for ShadowNonDMLStatementRoutingEngineTest (#17425) 4938b6db182 is described below commit 4938b6db1820c399e167f535fa005c54744a788a Author: gin <jacky7...@163.com> AuthorDate: Sat May 7 20:49:40 2022 +0800 Add assert for ShadowNonDMLStatementRoutingEngineTest (#17425) --- .../impl/ShadowNonDMLStatementRoutingEngine.java | 5 ++--- .../ShadowNonDMLStatementRoutingEngineTest.java | 21 ++++++++++++++++----- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java index 083dd0df234..82dbf193544 100644 --- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java +++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java @@ -49,15 +49,14 @@ public final class ShadowNonDMLStatementRoutingEngine implements ShadowRouteEngi } private Map<String, String> findShadowDataSourceMappings(final ShadowRule shadowRule) { - Map<String, String> result = new LinkedHashMap<>(); Optional<Collection<String>> sqlComments = parseSQLComments(); if (!sqlComments.isPresent()) { - return result; + return new LinkedHashMap<>(); } if (isMatchAnyNoteShadowAlgorithms(shadowRule, createShadowDetermineCondition(sqlComments.get()))) { return shadowRule.getAllShadowDataSourceMappings(); } - return result; + return new LinkedHashMap<>(); } private Optional<Collection<String>> parseSQLComments() { diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngineTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngineTest.java index 8a53adb4913..e28cfc522b5 100644 --- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngineTest.java +++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngineTest.java @@ -34,10 +34,13 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.ddl.MySQ import org.junit.Before; import org.junit.Test; +import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Properties; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -60,17 +63,25 @@ public final class ShadowNonDMLStatementRoutingEngineTest { @Test public void assertRoute() { - shadowRouteEngine.route(createRouteContext(), new ShadowRule(createAlgorithmProvidedShadowRuleConfiguration())); - // TODO finish assert + RouteContext routeContext = createRouteContext(); + shadowRouteEngine.route(routeContext, new ShadowRule(createAlgorithmProvidedShadowRuleConfiguration())); + Collection<RouteUnit> routeUnits = routeContext.getRouteUnits(); + RouteMapper dataSourceMapper = routeUnits.iterator().next().getDataSourceMapper(); + assertThat(dataSourceMapper.getLogicName(), is("logic_db")); + assertThat(dataSourceMapper.getActualName(), is("ds_shadow")); } private RouteContext createRouteContext() { - RouteContext result = mock(RouteContext.class); - when(result.getRouteUnits()).thenReturn( - Collections.singleton(new RouteUnit(new RouteMapper("ds", "ds"), Collections.singleton(new RouteMapper("t_order", "t_order"))))); + RouteContext result = new RouteContext(); + Collection<RouteUnit> routeUnits = result.getRouteUnits(); + routeUnits.add(createRouteUnit()); return result; } + private RouteUnit createRouteUnit() { + return new RouteUnit(new RouteMapper("logic_db", "shadow-data-source"), Collections.singleton(new RouteMapper("t_order", "t_order"))); + } + private AlgorithmProvidedShadowRuleConfiguration createAlgorithmProvidedShadowRuleConfiguration() { AlgorithmProvidedShadowRuleConfiguration result = new AlgorithmProvidedShadowRuleConfiguration(); result.setDataSources(Collections.singletonMap("shadow-data-source", new ShadowDataSourceConfiguration("ds", "ds_shadow")));