@@ -10,6 +10,8 @@ import io.mockk.every
10
10
import io.mockk.mockk
11
11
import org.junit.jupiter.api.Assertions.assertEquals
12
12
import org.junit.jupiter.api.Test
13
+ import java.net.URI
14
+ import java.nio.file.Path
13
15
14
16
class WorkspaceFolderUtilTest {
15
17
@@ -27,18 +29,19 @@ class WorkspaceFolderUtilTest {
27
29
fun `createWorkspaceFolders returns workspace folders for non-default project` () {
28
30
val mockProject = mockk<Project >()
29
31
val mockProjectRootManager = mockk<ProjectRootManager >()
30
- val mockContentRoot1 = mockk<VirtualFile >()
31
- val mockContentRoot2 = mockk<VirtualFile >()
32
+ val mockContentRoot1 = createMockVirtualFile(
33
+ URI (" file:///path/to/root1" ),
34
+ name = " root1"
35
+ )
36
+ val mockContentRoot2 = createMockVirtualFile(
37
+ URI (" file:///path/to/root2" ),
38
+ name = " root2"
39
+ )
32
40
33
41
every { mockProject.isDefault } returns false
34
42
every { ProjectRootManager .getInstance(mockProject) } returns mockProjectRootManager
35
43
every { mockProjectRootManager.contentRoots } returns arrayOf(mockContentRoot1, mockContentRoot2)
36
44
37
- every { mockContentRoot1.name } returns " root1"
38
- every { mockContentRoot1.url } returns " file:///path/to/root1"
39
- every { mockContentRoot2.name } returns " root2"
40
- every { mockContentRoot2.url } returns " file:///path/to/root2"
41
-
42
45
val result = WorkspaceFolderUtil .createWorkspaceFolders(mockProject)
43
46
44
47
assertEquals(2 , result.size)
@@ -49,7 +52,7 @@ class WorkspaceFolderUtilTest {
49
52
}
50
53
51
54
@Test
52
- fun `reateWorkspaceFolders returns empty list when project has no content roots` () {
55
+ fun `createWorkspaceFolders returns empty list when project has no content roots` () {
53
56
val mockProject = mockk<Project >()
54
57
val mockProjectRootManager = mockk<ProjectRootManager >()
55
58
@@ -61,4 +64,19 @@ class WorkspaceFolderUtilTest {
61
64
62
65
assertEquals(emptyList<VirtualFile >(), result)
63
66
}
67
+
68
+ private fun createMockVirtualFile (uri : URI , name : String ): VirtualFile {
69
+ val path = mockk<Path > {
70
+ every { toUri() } returns uri
71
+ }
72
+ return mockk<VirtualFile > {
73
+ every { url } returns uri.toString()
74
+ every { getName() } returns name
75
+ every { toNioPath() } returns path
76
+ every { isDirectory } returns false
77
+ every { fileSystem } returns mockk {
78
+ every { protocol } returns " file"
79
+ }
80
+ }
81
+ }
64
82
}
0 commit comments