public static Map<String, String> getLogicAndActualTableMap(final RouteUnit routeUnit, final SQLStatementContext sqlStatementContext, final ShardingRule shardingRule) {
        if (!(sqlStatementContext instanceof TableAvailable)) {
            return Collections.emptyMap();
        }
        Collection<String> tableNames = ((TableAvailable) sqlStatementContext).getTablesContext().getTableNames();
        Map<String, String> result = new CaseInsensitiveMap<>(tableNames.size(), 1F);
        for (RouteMapper each : routeUnit.getTableMappers()) {
            result.put(each.getLogicName(), each.getActualName());
            result.putAll(shardingRule.getLogicAndActualTablesFromBindingTable(routeUnit.getDataSourceMapper().getLogicName(), each.getLogicName(), each.getActualName(), tableNames));
        }
        return result;
    }
@Test
    void assertGetLogicAndActualTablesFromRouteUnit() {
        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"));
    }