@@ -241,6 +241,36 @@ class ImplementAbstractMembersQuickFixSameFileTest : SingleFileTestFixture("quic
241
241
assertThat(memberToImplementEdit?.range, equalTo(range(38 , 31 , 38 , 31 )))
242
242
assertThat(memberToImplementEdit?.newText, equalTo(System .lineSeparator() + System .lineSeparator() + " override fun myFun() { }" ))
243
243
}
244
+
245
+ @Test
246
+ fun `should find abstract members when class has no body (square brackets)` () {
247
+ val only = listOf (CodeActionKind .QuickFix )
248
+ val codeActionParams = codeActionParams(file, 47 , 1 , 47 , 12 , diagnostics, only)
249
+
250
+ val codeActionResult = languageServer.textDocumentService.codeAction(codeActionParams).get()
251
+
252
+ assertThat(codeActionResult, hasSize(1 ))
253
+ val codeAction = codeActionResult[0 ].right
254
+ assertThat(codeAction.kind, equalTo(CodeActionKind .QuickFix ))
255
+ assertThat(codeAction.title, equalTo(" Implement abstract members" ))
256
+
257
+ val textEdit = codeAction.edit.changes
258
+ val key = workspaceRoot.resolve(file).toUri().toString()
259
+ assertThat(textEdit.containsKey(key), equalTo(true ))
260
+ assertThat(textEdit[key], hasSize(3 ))
261
+
262
+ val firstMemberToImplementEdit = textEdit[key]?.get(0 )
263
+ assertThat(firstMemberToImplementEdit?.range, equalTo(range(47 , 23 , 47 , 23 )))
264
+ assertThat(firstMemberToImplementEdit?.newText, equalTo(" {" ))
265
+
266
+ val secondMemberToImplementEdit = textEdit[key]?.get(1 )
267
+ assertThat(secondMemberToImplementEdit?.range, equalTo(range(47 , 23 , 47 , 23 )))
268
+ assertThat(secondMemberToImplementEdit?.newText, equalTo(System .lineSeparator() + System .lineSeparator() + " override fun behaviour() { }" ))
269
+
270
+ val thirdMemberToImplementEdit = textEdit[key]?.get(2 )
271
+ assertThat(thirdMemberToImplementEdit?.range, equalTo(range(47 , 23 , 47 , 23 )))
272
+ assertThat(thirdMemberToImplementEdit?.newText, equalTo(System .lineSeparator() + " }" ))
273
+ }
244
274
}
245
275
246
276
class ImplementAbstractMembersQuickFixExternalLibraryTest : SingleFileTestFixture (" quickfixes" , " standardlib.kt" ) {
0 commit comments