Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
c9cb0739
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,体验更适合开发者的 AI 搜索 >>
提交
c9cb0739
编写于
4月 01, 2018
作者:
T
tuohai666
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add test cases for DQLMergeEngine
上级
c7623b42
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
109 addition
and
5 deletion
+109
-5
sharding-core/src/test/java/io/shardingjdbc/core/merger/dql/DQLMergeEngineTest.java
...a/io/shardingjdbc/core/merger/dql/DQLMergeEngineTest.java
+109
-5
未找到文件。
sharding-core/src/test/java/io/shardingjdbc/core/merger/dql/DQLMergeEngineTest.java
浏览文件 @
c9cb0739
...
...
@@ -28,6 +28,8 @@ import io.shardingjdbc.core.merger.dql.groupby.GroupByStreamMergedResult;
import
io.shardingjdbc.core.merger.dql.iterator.IteratorStreamMergedResult
;
import
io.shardingjdbc.core.merger.dql.orderby.OrderByStreamMergedResult
;
import
io.shardingjdbc.core.merger.dql.pagination.LimitDecoratorMergedResult
;
import
io.shardingjdbc.core.merger.dql.pagination.RowNumberDecoratorMergedResult
;
import
io.shardingjdbc.core.merger.dql.pagination.TopAndRowNumberDecoratorMergedResult
;
import
io.shardingjdbc.core.merger.fixture.TestQueryResult
;
import
io.shardingjdbc.core.parsing.parser.context.OrderItem
;
import
io.shardingjdbc.core.parsing.parser.context.limit.Limit
;
...
...
@@ -74,7 +76,7 @@ public final class DQLMergeEngineTest {
}
@Test
public
void
assertBuildIteratorStreamMergedResultWithLimit
()
throws
SQLException
{
public
void
assertBuildIteratorStreamMergedResultWith
MySQL
Limit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
MySQL
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
...
...
@@ -82,6 +84,24 @@ public final class DQLMergeEngineTest {
assertThat
(((
LimitDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
IteratorStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildIteratorStreamMergedResultWithOracleLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
Oracle
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
RowNumberDecoratorMergedResult
.
class
));
assertThat
(((
RowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
IteratorStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildIteratorStreamMergedResultWithSQLServerLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
SQLServer
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
TopAndRowNumberDecoratorMergedResult
.
class
));
assertThat
(((
TopAndRowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
IteratorStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildOrderByStreamMergedResult
()
throws
SQLException
{
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
...
...
@@ -90,7 +110,7 @@ public final class DQLMergeEngineTest {
}
@Test
public
void
assertBuildOrderByStreamMergedResultWithLimit
()
throws
SQLException
{
public
void
assertBuildOrderByStreamMergedResultWith
MySQL
Limit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
MySQL
));
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
...
...
@@ -99,6 +119,26 @@ public final class DQLMergeEngineTest {
assertThat
(((
LimitDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
OrderByStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildOrderByStreamMergedResultWithOracleLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
Oracle
));
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
RowNumberDecoratorMergedResult
.
class
));
assertThat
(((
RowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
OrderByStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildOrderByStreamMergedResultWithSQLServerLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
SQLServer
));
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
TopAndRowNumberDecoratorMergedResult
.
class
));
assertThat
(((
TopAndRowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
OrderByStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByStreamMergedResult
()
throws
SQLException
{
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
...
...
@@ -108,7 +148,7 @@ public final class DQLMergeEngineTest {
}
@Test
public
void
assertBuildGroupByStreamMergedResultWithLimit
()
throws
SQLException
{
public
void
assertBuildGroupByStreamMergedResultWith
MySQL
Limit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
MySQL
));
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
...
...
@@ -118,6 +158,28 @@ public final class DQLMergeEngineTest {
assertThat
(((
LimitDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByStreamMergedResultWithOracleLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
Oracle
));
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
RowNumberDecoratorMergedResult
.
class
));
assertThat
(((
RowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByStreamMergedResultWithSQLServerLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
SQLServer
));
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
TopAndRowNumberDecoratorMergedResult
.
class
));
assertThat
(((
TopAndRowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByStreamMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByMemoryMergedResult
()
throws
SQLException
{
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
...
...
@@ -126,7 +188,7 @@ public final class DQLMergeEngineTest {
}
@Test
public
void
assertBuildGroupByMemoryMergedResultWithLimit
()
throws
SQLException
{
public
void
assertBuildGroupByMemoryMergedResultWith
MySQL
Limit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
MySQL
));
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
...
...
@@ -135,6 +197,28 @@ public final class DQLMergeEngineTest {
assertThat
(((
LimitDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByMemoryMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByMemoryMergedResultWithOracleLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
Oracle
));
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
selectStatement
.
getOrderByItems
().
add
(
new
OrderItem
(
2
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
RowNumberDecoratorMergedResult
.
class
));
assertThat
(((
RowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByMemoryMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByMemoryMergedResultWithSQLServerLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
SQLServer
));
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
DESC
,
OrderDirection
.
ASC
));
selectStatement
.
getGroupByItems
().
add
(
new
OrderItem
(
1
,
OrderDirection
.
ASC
,
OrderDirection
.
ASC
));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
TopAndRowNumberDecoratorMergedResult
.
class
));
assertThat
(((
TopAndRowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByMemoryMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByMemoryMergedResultWithAggregationOnly
()
throws
SQLException
{
selectStatement
.
getItems
().
add
(
new
AggregationSelectItem
(
AggregationType
.
COUNT
,
"(*)"
,
Optional
.<
String
>
absent
()));
...
...
@@ -143,7 +227,7 @@ public final class DQLMergeEngineTest {
}
@Test
public
void
assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithLimit
()
throws
SQLException
{
public
void
assertBuildGroupByMemoryMergedResultWithAggregationOnlyWith
MySQL
Limit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
MySQL
));
selectStatement
.
getItems
().
add
(
new
AggregationSelectItem
(
AggregationType
.
COUNT
,
"(*)"
,
Optional
.<
String
>
absent
()));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
...
...
@@ -151,4 +235,24 @@ public final class DQLMergeEngineTest {
assertThat
(
actual
,
instanceOf
(
LimitDecoratorMergedResult
.
class
));
assertThat
(((
LimitDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByMemoryMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithOracleLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
Oracle
));
selectStatement
.
getItems
().
add
(
new
AggregationSelectItem
(
AggregationType
.
COUNT
,
"(*)"
,
Optional
.<
String
>
absent
()));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
RowNumberDecoratorMergedResult
.
class
));
assertThat
(((
RowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByMemoryMergedResult
.
class
));
}
@Test
public
void
assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithSQLServerLimit
()
throws
SQLException
{
selectStatement
.
setLimit
(
new
Limit
(
DatabaseType
.
SQLServer
));
selectStatement
.
getItems
().
add
(
new
AggregationSelectItem
(
AggregationType
.
COUNT
,
"(*)"
,
Optional
.<
String
>
absent
()));
mergeEngine
=
new
DQLMergeEngine
(
queryResults
,
selectStatement
);
MergedResult
actual
=
mergeEngine
.
merge
();
assertThat
(
actual
,
instanceOf
(
TopAndRowNumberDecoratorMergedResult
.
class
));
assertThat
(((
TopAndRowNumberDecoratorMergedResult
)
actual
).
getMergedResult
(),
instanceOf
(
GroupByMemoryMergedResult
.
class
));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录