Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Libgit2sharp
提交
97adc9da
L
Libgit2sharp
项目概览
jobily
/
Libgit2sharp
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
Libgit2sharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
97adc9da
编写于
2月 06, 2014
作者:
C
crumblycake
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enhance merge test coverage to better test possible outcomes.
上级
bc101b2b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
47 addition
and
9 deletion
+47
-9
LibGit2Sharp.Tests/MergeFixture.cs
LibGit2Sharp.Tests/MergeFixture.cs
+47
-9
未找到文件。
LibGit2Sharp.Tests/MergeFixture.cs
浏览文件 @
97adc9da
using
System
;
using
System.Linq
;
using
System.Linq
;
using
LibGit2Sharp.Tests.TestHelpers
;
using
Xunit
;
using
Xunit.Extensions
;
namespace
LibGit2Sharp.Tests
{
...
...
@@ -81,9 +81,11 @@ public void CanRetrieveTheBranchBeingMerged()
Assert
.
Null
(
mergedHeads
[
1
].
Tip
);
}
}
[
Fact
]
public
void
CanMergeRepoNonFastForward
()
[
Theory
]
[
InlineData
(
true
)]
[
InlineData
(
false
)]
public
void
CanMergeRepoNonFastForward
(
bool
shouldMergeOccurInDetachedHeadState
)
{
const
string
firstBranchFileName
=
"first branch file.txt"
;
const
string
secondBranchFileName
=
"second branch file.txt"
;
...
...
@@ -104,7 +106,15 @@ public void CanMergeRepoNonFastForward()
// Commit with ONE new file to first branch (FirstBranch moves forward as it is checked out, SecondBranch stays back one).
AddFileCommitToRepo
(
repo
,
firstBranchFileName
);
secondBranch
.
Checkout
();
if
(
shouldMergeOccurInDetachedHeadState
)
{
// Detaches HEAD
repo
.
Checkout
(
secondBranch
.
Tip
);
}
else
{
secondBranch
.
Checkout
();
}
// Commit with ONE new file to second branch (FirstBranch and SecondBranch now point to separate commits that both have the same parent commit).
AddFileCommitToRepo
(
repo
,
secondBranchFileName
);
...
...
@@ -116,6 +126,13 @@ public void CanMergeRepoNonFastForward()
Assert
.
Equal
(
repo
.
Head
.
Tip
,
mergeResult
.
Commit
);
Assert
.
Equal
(
originalTreeCount
+
3
,
mergeResult
.
Commit
.
Tree
.
Count
);
// Expecting original tree count plussed by the 3 added files.
Assert
.
Equal
(
2
,
mergeResult
.
Commit
.
Parents
.
Count
());
// Merge commit should have 2 parents
Assert
.
Equal
(
shouldMergeOccurInDetachedHeadState
,
repo
.
Info
.
IsHeadDetached
);
if
(!
shouldMergeOccurInDetachedHeadState
)
{
// Ensure HEAD is still attached and points to SecondBranch
Assert
.
Equal
(
repo
.
Refs
.
Head
.
TargetIdentifier
,
secondBranch
.
CanonicalName
);
}
}
}
...
...
@@ -143,8 +160,10 @@ public void IsUpToDateMerge()
}
}
[
Fact
]
public
void
CanFastForwardRepos
()
[
Theory
]
[
InlineData
(
true
)]
[
InlineData
(
false
)]
public
void
CanFastForwardRepos
(
bool
shouldMergeOccurInDetachedHeadState
)
{
const
string
firstBranchFileName
=
"first branch file.txt"
;
const
string
sharedBranchFileName
=
"first+second branch file.txt"
;
...
...
@@ -169,14 +188,33 @@ public void CanFastForwardRepos()
// Commit with ONE new file to first branch (FirstBranch moves forward as it is checked out, SecondBranch stays back one).
AddFileCommitToRepo
(
repo
,
firstBranchFileName
);
secondBranch
.
Checkout
();
if
(
shouldMergeOccurInDetachedHeadState
)
{
// Detaches HEAD
repo
.
Checkout
(
secondBranch
.
Tip
);
}
else
{
secondBranch
.
Checkout
();
}
Assert
.
Equal
(
shouldMergeOccurInDetachedHeadState
,
repo
.
Info
.
IsHeadDetached
);
MergeResult
mergeResult
=
repo
.
Merge
(
repo
.
Branches
[
"FirstBranch"
].
Tip
,
Constants
.
Signature
);
Assert
.
Equal
(
MergeStatus
.
FastForward
,
mergeResult
.
Status
);
Assert
.
Equal
(
repo
.
Branches
[
"FirstBranch"
].
Tip
,
mergeResult
.
Commit
);
Assert
.
Equal
(
repo
.
Branches
[
"FirstBranch"
].
Tip
,
repo
.
Head
.
Tip
);
Assert
.
Equal
(
repo
.
Head
.
Tip
,
mergeResult
.
Commit
);
Assert
.
Equal
(
0
,
repo
.
Index
.
RetrieveStatus
().
Count
());
Assert
.
Equal
(
shouldMergeOccurInDetachedHeadState
,
repo
.
Info
.
IsHeadDetached
);
if
(!
shouldMergeOccurInDetachedHeadState
)
{
// Ensure HEAD is still attached and points to SecondBranch
Assert
.
Equal
(
repo
.
Refs
.
Head
.
TargetIdentifier
,
secondBranch
.
CanonicalName
);
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录