@@ -241,6 +241,36 @@ class ImplementAbstractMembersQuickFixSameFileTest : SingleFileTestFixture("quic
241241 assertThat(memberToImplementEdit?.range, equalTo(range(38 , 31 , 38 , 31 )))
242242 assertThat(memberToImplementEdit?.newText, equalTo(System .lineSeparator() + System .lineSeparator() + " override fun myFun() { }" ))
243243 }
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+ }
244274}
245275
246276class ImplementAbstractMembersQuickFixExternalLibraryTest : SingleFileTestFixture (" quickfixes" , " standardlib.kt" ) {
0 commit comments