Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
二次元的罪恶王冠
beego
提交
647e21b0
B
beego
项目概览
二次元的罪恶王冠
/
beego
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
beego
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
647e21b0
编写于
11月 13, 2020
作者:
C
cruis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加Condition单元测试
上级
8f3fd317
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
42 addition
and
0 deletion
+42
-0
client/orm/orm_test.go
client/orm/orm_test.go
+42
-0
未找到文件。
client/orm/orm_test.go
浏览文件 @
647e21b0
...
...
@@ -2668,3 +2668,45 @@ func TestPSQueryBuilder(t *testing.T) {
throwFailNow
(
t
,
AssertIs
(
l
[
0
]
.
UserName
,
"astaxie"
))
throwFailNow
(
t
,
AssertIs
(
l
[
0
]
.
Age
,
30
))
}
func
TestCondition
(
t
*
testing
.
T
)
{
// test Condition whether to include yourself
cond
:=
NewCondition
()
cond
=
cond
.
AndCond
(
cond
.
Or
(
"id"
,
1
))
cond
=
cond
.
AndCond
(
cond
.
Or
(
"id"
,
2
))
cond
=
cond
.
AndCond
(
cond
.
Or
(
"id"
,
3
))
cond
=
cond
.
AndCond
(
cond
.
Or
(
"id"
,
4
))
cycleFlag
:=
false
var
hasCycle
func
(
*
Condition
)
hasCycle
=
func
(
c
*
Condition
)
{
if
nil
==
c
||
cycleFlag
{
return
}
condPointMap
:=
make
(
map
[
string
]
bool
)
condPointMap
[
fmt
.
Sprintf
(
"%p"
,
c
)]
=
true
for
_
,
p
:=
range
c
.
params
{
if
p
.
isCond
{
adr
:=
fmt
.
Sprintf
(
"%p"
,
p
.
cond
)
if
condPointMap
[
adr
]
{
// self as sub cond was cycle
cycleFlag
=
true
return
}
else
{
condPointMap
[
adr
]
=
true
}
}
}
for
_
,
p
:=
range
c
.
params
{
if
p
.
isCond
{
// check next cond
hasCycle
(
p
.
cond
)
}
}
return
}
hasCycle
(
cond
)
// cycleFlag was true,meaning use self as sub cond
throwFail
(
t
,
AssertIs
(
!
cycleFlag
,
true
))
return
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录