Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LinuxSuRen
jenkins
提交
15be8b0c
J
jenkins
项目概览
LinuxSuRen
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
15be8b0c
编写于
12月 20, 2018
作者:
M
Matt Sicker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make test platform independent via Mockito
Signed-off-by:
N
Matt Sicker
<
boards@gmail.com
>
上级
baba9532
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
5 deletion
+28
-5
core/src/test/java/jenkins/util/io/PathRemoverTest.java
core/src/test/java/jenkins/util/io/PathRemoverTest.java
+28
-5
未找到文件。
core/src/test/java/jenkins/util/io/PathRemoverTest.java
浏览文件 @
15be8b0c
...
...
@@ -34,7 +34,11 @@ import org.junit.rules.Timeout;
import
java.io.File
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.nio.file.FileSystem
;
import
java.nio.file.FileSystemException
;
import
java.nio.file.Path
;
import
java.nio.file.attribute.BasicFileAttributes
;
import
java.nio.file.spi.FileSystemProvider
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.CountDownLatch
;
...
...
@@ -47,6 +51,8 @@ import static org.hamcrest.Matchers.containsString;
import
static
org
.
hamcrest
.
Matchers
.
hasItem
;
import
static
org
.
junit
.
Assert
.*;
import
static
org
.
junit
.
Assume
.
assumeTrue
;
import
static
org
.
mockito
.
BDDMockito
.
given
;
import
static
org
.
mockito
.
Mockito
.
mock
;
public
class
PathRemoverTest
{
...
...
@@ -68,10 +74,22 @@ public class PathRemoverTest {
@Test
public
void
testForceRemoveFile_LockedFile
()
throws
Exception
{
assumeTrue
(
Functions
.
isWindows
());
File
file
=
tmp
.
newFile
();
touchWithFileName
(
file
);
locker
.
acquireLock
(
file
);
String
filename
=
"/var/lock/jenkins.lock"
;
File
file
=
mock
(
File
.
class
);
Path
path
=
mock
(
Path
.
class
);
FileSystem
fs
=
mock
(
FileSystem
.
class
);
FileSystemProvider
fsProvider
=
mock
(
FileSystemProvider
.
class
);
BasicFileAttributes
attributes
=
mock
(
BasicFileAttributes
.
class
);
given
(
file
.
getPath
()).
willReturn
(
filename
);
given
(
file
.
toPath
()).
willReturn
(
path
);
given
(
path
.
toString
()).
willReturn
(
filename
);
given
(
path
.
toFile
()).
willReturn
(
file
);
given
(
path
.
getFileSystem
()).
willReturn
(
fs
);
given
(
fs
.
provider
()).
willReturn
(
fsProvider
);
given
(
fsProvider
.
deleteIfExists
(
path
)).
willThrow
(
new
FileSystemException
(
filename
));
given
(
fsProvider
.
readAttributes
(
path
,
BasicFileAttributes
.
class
)).
willReturn
(
attributes
);
given
(
attributes
.
isDirectory
()).
willReturn
(
false
);
PathRemover
remover
=
PathRemover
.
newSimpleRemover
();
try
{
...
...
@@ -79,7 +97,7 @@ public class PathRemoverTest {
fail
(
"Should not have been deleted: "
+
file
);
}
catch
(
IOException
e
)
{
assertThat
(
calcExceptionHierarchy
(
e
),
hasItem
(
FileSystemException
.
class
));
assertThat
(
e
.
getMessage
(),
containsString
(
file
.
getPath
()
));
assertThat
(
e
.
getMessage
(),
containsString
(
file
name
));
}
}
...
...
@@ -88,6 +106,11 @@ public class PathRemoverTest {
List
<
Class
<?>>
hierarchy
=
new
ArrayList
<>();
for
(;
t
!=
null
;
t
=
t
.
getCause
())
{
hierarchy
.
add
(
t
.
getClass
());
// with a composite exception, we might be hiding some other causes
if
(
t
instanceof
CompositeIOException
)
{
CompositeIOException
e
=
(
CompositeIOException
)
t
;
e
.
getExceptions
().
forEach
(
ex
->
hierarchy
.
addAll
(
calcExceptionHierarchy
(
ex
)));
}
}
return
hierarchy
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录