Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
2a20af42
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2a20af42
编写于
3月 30, 2018
作者:
T
tianbin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add test case
上级
fdb5f099
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
75 addition
and
3 deletion
+75
-3
sharding-core/src/test/java/io/shardingjdbc/core/rewrite/SQLBuilderTest.java
...est/java/io/shardingjdbc/core/rewrite/SQLBuilderTest.java
+75
-3
未找到文件。
sharding-core/src/test/java/io/shardingjdbc/core/rewrite/SQLBuilderTest.java
浏览文件 @
2a20af42
...
...
@@ -17,12 +17,17 @@
package
io.shardingjdbc.core.rewrite
;
import
io.shardingjdbc.core.api.config.ShardingRuleConfiguration
;
import
io.shardingjdbc.core.api.config.TableRuleConfiguration
;
import
io.shardingjdbc.core.api.config.strategy.NoneShardingStrategyConfiguration
;
import
io.shardingjdbc.core.exception.ShardingJdbcException
;
import
io.shardingjdbc.core.rewrite.placeholder.IndexPlaceholder
;
import
io.shardingjdbc.core.rewrite.placeholder.SchemaPlaceholder
;
import
io.shardingjdbc.core.rewrite.placeholder.TablePlaceholder
;
import
io.shardingjdbc.core.rule.ShardingRule
;
import
org.junit.Test
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.*
;
import
static
org
.
hamcrest
.
CoreMatchers
.
is
;
import
static
org
.
junit
.
Assert
.
assertThat
;
...
...
@@ -63,4 +68,71 @@ public final class SQLBuilderTest {
tableTokens
.
put
(
"table_x"
,
"table_x_1"
);
assertThat
(
sqlBuilder
.
toSQL
(
tableTokens
,
null
),
is
(
"SELECT table_x_1.id FROM table_x_1"
));
}
@Test
public
void
assertIndexPlaceholderAppendTableWithoutTableToken
()
{
SQLBuilder
sqlBuilder
=
new
SQLBuilder
();
sqlBuilder
.
appendLiterals
(
"CREATE INDEX "
);
sqlBuilder
.
appendPlaceholder
(
new
IndexPlaceholder
(
"index_name"
,
"table_x"
));
sqlBuilder
.
appendLiterals
(
" ON "
);
sqlBuilder
.
appendPlaceholder
(
new
TablePlaceholder
(
"table_x"
));
sqlBuilder
.
appendLiterals
(
" ('cloumn')"
);
assertThat
(
sqlBuilder
.
toSQL
(
Collections
.<
String
,
String
>
emptyMap
(),
null
),
is
(
"CREATE INDEX index_name ON table_x ('cloumn')"
));
}
@Test
public
void
assertIndexPlaceholderAppendTableWithTableToken
()
{
SQLBuilder
sqlBuilder
=
new
SQLBuilder
();
sqlBuilder
.
appendLiterals
(
"CREATE INDEX "
);
sqlBuilder
.
appendPlaceholder
(
new
IndexPlaceholder
(
"index_name"
,
"table_x"
));
sqlBuilder
.
appendLiterals
(
" ON "
);
sqlBuilder
.
appendPlaceholder
(
new
TablePlaceholder
(
"table_x"
));
sqlBuilder
.
appendLiterals
(
" ('cloumn')"
);
Map
<
String
,
String
>
tableTokens
=
new
HashMap
<>(
1
,
1
);
tableTokens
.
put
(
"table_x"
,
"table_x_1"
);
assertThat
(
sqlBuilder
.
toSQL
(
tableTokens
,
null
),
is
(
"CREATE INDEX index_name_table_x_1 ON table_x_1 ('cloumn')"
));
}
@Test
(
expected
=
ShardingJdbcException
.
class
)
public
void
assertSchemaPlaceholderAppendTableWithoutTableToken
()
{
SQLBuilder
sqlBuilder
=
new
SQLBuilder
();
sqlBuilder
.
appendLiterals
(
"SHOW "
);
sqlBuilder
.
appendLiterals
(
"CREATE TABLE "
);
sqlBuilder
.
appendPlaceholder
(
new
TablePlaceholder
(
"table_x"
));
sqlBuilder
.
appendLiterals
(
"ON "
);
sqlBuilder
.
appendPlaceholder
(
new
SchemaPlaceholder
(
"dx"
,
"table_x"
));
sqlBuilder
.
toSQL
(
Collections
.<
String
,
String
>
emptyMap
(),
createShardingRule
());
}
@Test
public
void
assertSchemaPlaceholderAppendTableWithTableToken
()
{
SQLBuilder
sqlBuilder
=
new
SQLBuilder
();
sqlBuilder
.
appendLiterals
(
"SHOW "
);
sqlBuilder
.
appendLiterals
(
"CREATE TABLE "
);
sqlBuilder
.
appendPlaceholder
(
new
TablePlaceholder
(
"table_0"
));
sqlBuilder
.
appendLiterals
(
" ON "
);
sqlBuilder
.
appendPlaceholder
(
new
SchemaPlaceholder
(
"ds"
,
"table_0"
));
Map
<
String
,
String
>
tableTokens
=
new
HashMap
<>(
1
,
1
);
tableTokens
.
put
(
"table_0"
,
"table_1"
);
assertThat
(
sqlBuilder
.
toSQL
(
tableTokens
,
createShardingRule
()),
is
(
"SHOW CREATE TABLE table_1 ON ds0"
));
}
private
ShardingRule
createShardingRule
()
{
ShardingRuleConfiguration
shardingRuleConfig
=
new
ShardingRuleConfiguration
();
TableRuleConfiguration
tableRuleConfig
=
createTableRuleConfig
();
shardingRuleConfig
.
getTableRuleConfigs
().
add
(
tableRuleConfig
);
ShardingRule
actual
=
new
ShardingRule
(
shardingRuleConfig
,
createDataSourceNames
());
return
actual
;
}
private
Collection
<
String
>
createDataSourceNames
()
{
return
Arrays
.
asList
(
"ds0"
,
"ds1"
);
}
private
TableRuleConfiguration
createTableRuleConfig
()
{
TableRuleConfiguration
result
=
new
TableRuleConfiguration
();
result
.
setLogicTable
(
"LOGIC_TABLE"
);
result
.
setActualDataNodes
(
"ds${0..1}.table_${0..2}"
);
return
result
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录