Skip to content

Commit 82e28c0

Browse files
committed
Test that replicates the rename declaration site issue described in #320
1 parent a2b68ab commit 82e28c0

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed

server/src/test/kotlin/org/javacs/kt/RenameTest.kt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,43 @@ class RenameDefinitionTest : SingleFileTestFixture("rename", "SomeOtherClass.kt"
4343
assertThat(changes[0].left.edits[0].range.end, equalTo(Position(2, 20)))
4444
}
4545
}
46+
47+
class RenameDeclarationSiteTest : SingleFileTestFixture("rename", "DeclSite.kt") {
48+
49+
@Test
50+
fun `should rename variable from usage site`() {
51+
val usageFile = workspaceRoot.resolve("UsageSite.kt").toString()
52+
val edits = languageServer.textDocumentService.rename(renameParams(usageFile, 4, 13, "newvarname")).get()!!
53+
val changes = edits.documentChanges
54+
55+
assertThat(changes.size, equalTo(2))
56+
57+
val firstChange = changes[0].left
58+
assertThat(firstChange.textDocument.uri, containsString("DeclSite.kt"))
59+
assertThat(firstChange.edits[0].newText, equalTo("newvarname"))
60+
assertThat(firstChange.edits[0].range, equalTo(range(3, 5, 3, 10)))
61+
62+
val secondChange = changes[1].left
63+
assertThat(secondChange.textDocument.uri, containsString("UsageSite.kt"))
64+
assertThat(secondChange.edits[0].newText, equalTo("newvarname"))
65+
assertThat(secondChange.edits[0].range, equalTo(range(4, 13, 4, 18)))
66+
}
67+
68+
@Test
69+
fun `should rename variable from declaration site`() {
70+
val edits = languageServer.textDocumentService.rename(renameParams(file, 3, 6, "newvarname")).get()!!
71+
val changes = edits.documentChanges
72+
73+
assertThat(changes.size, equalTo(2))
74+
75+
val firstChange = changes[0].left
76+
assertThat(firstChange.textDocument.uri, containsString("DeclSite.kt"))
77+
assertThat(firstChange.edits[0].newText, equalTo("newvarname"))
78+
assertThat(firstChange.edits[0].range, equalTo(range(3, 5, 3, 10)))
79+
80+
val secondChange = changes[1].left
81+
assertThat(secondChange.textDocument.uri, containsString("UsageSite.kt"))
82+
assertThat(secondChange.edits[0].newText, equalTo("newvarname"))
83+
assertThat(secondChange.edits[0].range, equalTo(range(4, 13, 4, 18)))
84+
}
85+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package declsite
2+
3+
val myvar = 2
4+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package declsite
2+
3+
fun myfunc() {
4+
println(myvar)
5+
}

0 commit comments

Comments
 (0)