From 402c3f6db66ecdd3606232fc88088b6a6500d896 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Sat, 1 Apr 2023 00:13:21 +0530 Subject: [PATCH] tests(fix): FileManager does not receive events --- .../java/partial/PartialReparserImplTest.kt | 5 ++-- .../providers/JavaSelectionProviderTest.kt | 2 +- .../com/itsaky/androidide/lsp/api/LSPTest.kt | 28 ++++++++++++------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/partial/PartialReparserImplTest.kt b/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/partial/PartialReparserImplTest.kt index 1494e7567..f2723bf21 100644 --- a/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/partial/PartialReparserImplTest.kt +++ b/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/partial/PartialReparserImplTest.kt @@ -75,11 +75,12 @@ class PartialReparserImplTest { ) ) .run { PrintingVisitor().scan(it.root() as JCCompilationUnit) } + val changedText = contents!!.insert(192, "trim().").toString() dispatchEvent( DocumentChangeEvent( file!!, - contents!!.insert(192, "trim().").toString(), - null, + changedText, + changedText, 2, INSERT, "trim().".length, diff --git a/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/providers/JavaSelectionProviderTest.kt b/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/providers/JavaSelectionProviderTest.kt index 0fb0145e5..a2a10b910 100644 --- a/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/providers/JavaSelectionProviderTest.kt +++ b/lsp/java/src/test/java/com/itsaky/androidide/lsp/java/providers/JavaSelectionProviderTest.kt @@ -41,7 +41,7 @@ class JavaSelectionProviderTest { openFile("selection/SimpleSelectionExpansionTest") cursor = requireCursor() deleteCursorText() - dispatchEvent(DocumentChangeEvent(file!!, contents.toString(), null,1, NEW_TEXT, 0, Range.NONE)) + dispatchEvent(DocumentChangeEvent(file!!, contents.toString(), contents.toString(),1, NEW_TEXT, 0, Range.NONE)) val range = findRange() val expanded = server.expandSelection(ExpandSelectionParams(file!!, range)) diff --git a/lsp/testing/src/main/java/com/itsaky/androidide/lsp/api/LSPTest.kt b/lsp/testing/src/main/java/com/itsaky/androidide/lsp/api/LSPTest.kt index 3de23a122..878a33cf4 100644 --- a/lsp/testing/src/main/java/com/itsaky/androidide/lsp/api/LSPTest.kt +++ b/lsp/testing/src/main/java/com/itsaky/androidide/lsp/api/LSPTest.kt @@ -20,15 +20,17 @@ package com.itsaky.androidide.lsp.api import android.content.Context import com.google.common.truth.Truth.assertThat import com.itsaky.androidide.actions.ActionData -import com.itsaky.androidide.app.BaseApplication import com.itsaky.androidide.eventbus.events.editor.ChangeType.DELETE import com.itsaky.androidide.eventbus.events.editor.DocumentChangeEvent +import com.itsaky.androidide.eventbus.events.editor.DocumentCloseEvent import com.itsaky.androidide.eventbus.events.editor.DocumentOpenEvent +import com.itsaky.androidide.eventbus.events.file.FileDeletionEvent +import com.itsaky.androidide.eventbus.events.file.FileRenameEvent import com.itsaky.androidide.lookup.Lookup -import com.itsaky.androidide.lsp.snippets.SnippetParser import com.itsaky.androidide.models.Position import com.itsaky.androidide.models.Range import com.itsaky.androidide.preferences.internal.tabSize +import com.itsaky.androidide.projects.FileManager import com.itsaky.androidide.projects.ProjectManager import com.itsaky.androidide.projects.builder.BuildService import com.itsaky.androidide.tooling.api.IProject @@ -41,16 +43,15 @@ import com.itsaky.androidide.utils.ILogger import io.github.rosemoe.sora.text.Content import io.mockk.every import io.mockk.mockkStatic -import org.greenrobot.eventbus.EventBus -import org.junit.Before -import org.junit.runner.RunWith -import org.robolectric.Robolectric -import org.robolectric.RobolectricTestRunner -import org.robolectric.RuntimeEnvironment -import org.robolectric.annotation.Config import java.io.File import java.nio.file.Path import kotlin.io.path.pathString +import org.greenrobot.eventbus.EventBus +import org.junit.Before +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.RuntimeEnvironment +import org.robolectric.annotation.Config /** * Runs tests for a language server. @@ -129,7 +130,7 @@ abstract class LSPTest { // As the content has been changed, we have to // Update the content in language server - dispatchEvent(DocumentChangeEvent(file!!, contents.toString(), null, 1, DELETE, 0, Range.NONE)) + dispatchEvent(DocumentChangeEvent(file!!, contents.toString(), contents.toString(), 1, DELETE, 0, Range.NONE)) } @JvmOverloads @@ -152,6 +153,13 @@ abstract class LSPTest { } open fun dispatchEvent(event: Any) { + when (event) { + is DocumentOpenEvent -> FileManager.onDocumentOpen(event) + is DocumentChangeEvent -> FileManager.onDocumentContentChange(event) + is DocumentCloseEvent -> FileManager.onDocumentClose(event) + is FileRenameEvent -> FileManager.onFileRenamed(event) + is FileDeletionEvent -> FileManager.onFileDeleted(event) + } EventBus.getDefault().post(event) }