From 5d6333f0f4d9f8cadc7e20d2b2ebd7dc435ede3f Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 21 Nov 2019 16:47:47 +0300 Subject: [PATCH] 193: Better services registration for parser tests --- .../testFramework/KtParsingTestCase.java.193 | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtParsingTestCase.java.193 b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtParsingTestCase.java.193 index 2b293989b60..2e42e3a75b2 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtParsingTestCase.java.193 +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtParsingTestCase.java.193 @@ -17,6 +17,8 @@ package org.jetbrains.kotlin.test.testFramework; import com.intellij.core.CoreASTFactory; +import com.intellij.ide.util.AppPropertiesComponentImpl; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.*; import com.intellij.lang.impl.PsiBuilderFactoryImpl; import com.intellij.mock.*; @@ -30,6 +32,8 @@ import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.impl.LoadTextUtil; import com.intellij.openapi.fileTypes.FileTypeFactory; import com.intellij.openapi.fileTypes.FileTypeManager; +import com.intellij.openapi.fileTypes.FileTypeRegistry; +import com.intellij.openapi.options.SchemeManagerFactory; import com.intellij.openapi.progress.EmptyProgressIndicator; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.progress.impl.CoreProgressManager; @@ -45,14 +49,14 @@ import com.intellij.psi.*; import com.intellij.psi.impl.*; import com.intellij.psi.util.CachedValuesManager; import com.intellij.testFramework.LightVirtualFile; +import com.intellij.testFramework.MockSchemeManagerFactory; import com.intellij.testFramework.TestDataFile; import com.intellij.util.CachedValuesManagerImpl; import com.intellij.util.Function; -import com.intellij.util.messages.MessageBus; -import com.intellij.util.messages.MessageBusFactory; import junit.framework.TestCase; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.idea.KotlinFileType; import org.picocontainer.ComponentAdapter; import org.picocontainer.MutablePicoContainer; @@ -95,21 +99,31 @@ public abstract class KtParsingTestCase extends KtPlatformLiteFixture { myPsiManager = new MockPsiManager(myProject); myFileFactory = new PsiFileFactoryImpl(myPsiManager); MutablePicoContainer appContainer = getApplication().getPicoContainer(); - registerComponentInstance(appContainer, MessageBus.class, MessageBusFactory.newMessageBus(getApplication())); final MockEditorFactory editorFactory = new MockEditorFactory(); - registerComponentInstance(appContainer, EditorFactory.class, editorFactory); - registerComponentInstance(appContainer, FileDocumentManager.class, new MockFileDocumentManagerImpl(new Function() { + MockFileTypeManager mockFileTypeManager = new MockFileTypeManager(KotlinFileType.INSTANCE); + MockFileDocumentManagerImpl mockFileDocumentManager = new MockFileDocumentManagerImpl(new Function() { @Override public Document fun(CharSequence charSequence) { return editorFactory.createDocument(charSequence); } - }, HARD_REF_TO_DOCUMENT_KEY)); - registerComponentInstance(appContainer, PsiDocumentManager.class, new MockPsiDocumentManager()); + }, HARD_REF_TO_DOCUMENT_KEY); + + registerApplicationService(PropertiesComponent.class, new AppPropertiesComponentImpl()); registerApplicationService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl()); registerApplicationService(DefaultASTFactory.class, new CoreASTFactory()); + registerApplicationService(SchemeManagerFactory.class, new MockSchemeManagerFactory()); + registerApplicationService(FileTypeManager.class, mockFileTypeManager); + registerApplicationService(FileDocumentManager.class, mockFileDocumentManager); registerApplicationService(ProgressManager.class, new CoreProgressManager()); + registerComponentInstance(appContainer, FileTypeRegistry.class, mockFileTypeManager); + registerComponentInstance(appContainer, FileTypeManager.class, mockFileTypeManager); + registerComponentInstance(appContainer, EditorFactory.class, editorFactory); + registerComponentInstance(appContainer, FileDocumentManager.class, mockFileDocumentManager); + registerComponentInstance(appContainer, PsiDocumentManager.class, new MockPsiDocumentManager()); + + myProject.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(myProject, new PsiCachedValuesFactory(myPsiManager))); myProject.registerService(PsiManager.class, myPsiManager);