@@ -10,6 +10,8 @@ import io.mockk.every
1010import io.mockk.mockk
1111import org.junit.jupiter.api.Assertions.assertEquals
1212import org.junit.jupiter.api.Test
13+ import java.net.URI
14+ import java.nio.file.Path
1315
1416class WorkspaceFolderUtilTest {
1517
@@ -27,18 +29,19 @@ class WorkspaceFolderUtilTest {
2729 fun `createWorkspaceFolders returns workspace folders for non-default project` () {
2830 val mockProject = mockk<Project >()
2931 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+ )
3240
3341 every { mockProject.isDefault } returns false
3442 every { ProjectRootManager .getInstance(mockProject) } returns mockProjectRootManager
3543 every { mockProjectRootManager.contentRoots } returns arrayOf(mockContentRoot1, mockContentRoot2)
3644
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-
4245 val result = WorkspaceFolderUtil .createWorkspaceFolders(mockProject)
4346
4447 assertEquals(2 , result.size)
@@ -49,7 +52,7 @@ class WorkspaceFolderUtilTest {
4952 }
5053
5154 @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` () {
5356 val mockProject = mockk<Project >()
5457 val mockProjectRootManager = mockk<ProjectRootManager >()
5558
@@ -61,4 +64,19 @@ class WorkspaceFolderUtilTest {
6164
6265 assertEquals(emptyList<VirtualFile >(), result)
6366 }
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+ }
6482}
0 commit comments