Skip to content

Commit 3e5a9e5

Browse files
committed
Remove ParsingTestCase.
1 parent 9fa9ef5 commit 3e5a9e5

65 files changed

Lines changed: 480 additions & 257 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/intellij-test/main/uk/co/reecedunn/intellij/plugin/core/tests/parser/LanguageParserTestCase.kt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,60 @@
11
// Copyright (C) 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.core.tests.parser
33

4+
import com.intellij.compat.openapi.vfs.encoding.EncodingManagerImpl
5+
import com.intellij.lang.DefaultASTFactory
6+
import com.intellij.lang.DefaultASTFactoryImpl
7+
import com.intellij.lang.PsiBuilderFactory
8+
import com.intellij.lang.impl.PsiBuilderFactoryImpl
9+
import com.intellij.mock.MockFileDocumentManagerImpl
10+
import com.intellij.openapi.application.ApplicationManager
11+
import com.intellij.openapi.editor.EditorFactory
12+
import com.intellij.openapi.fileEditor.FileDocumentManager
13+
import com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl
14+
import com.intellij.openapi.progress.ProgressManager
15+
import com.intellij.openapi.progress.impl.ProgressManagerImpl
16+
import com.intellij.openapi.vfs.encoding.EncodingManager
17+
import com.intellij.psi.PsiDocumentManager
418
import com.intellij.psi.PsiElement
519
import com.intellij.psi.PsiFile
20+
import com.intellij.psi.PsiFileFactory
21+
import com.intellij.psi.PsiManager
22+
import com.intellij.psi.impl.PsiFileFactoryImpl
623
import com.intellij.psi.impl.source.tree.LeafPsiElement
24+
import kotlinx.coroutines.CoroutineScope
25+
import kotlinx.coroutines.Dispatchers
26+
import uk.co.reecedunn.intellij.plugin.core.extensions.registerService
727
import uk.co.reecedunn.intellij.plugin.core.sequences.walkTree
28+
import uk.co.reecedunn.intellij.plugin.core.tests.editor.MockEditorFactoryEx
29+
import uk.co.reecedunn.intellij.plugin.core.tests.psi.MockPsiDocumentManagerEx
30+
import uk.co.reecedunn.intellij.plugin.core.tests.psi.MockPsiManager
831
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.ProjectTestCase
932
import uk.co.reecedunn.intellij.plugin.core.vfs.toPsiFile
1033

1134
interface LanguageParserTestCase<File : PsiFile> : LanguageTestCase, ProjectTestCase {
35+
fun registerPsiFileFactory() {
36+
val psiManager = MockPsiManager(project)
37+
project.registerService<PsiManager>(psiManager)
38+
project.registerService<PsiFileFactory>(PsiFileFactoryImpl(psiManager))
39+
40+
project.registerService<PsiDocumentManager>(MockPsiDocumentManagerEx(project))
41+
42+
val app = ApplicationManager.getApplication()
43+
app.registerService<DefaultASTFactory>(DefaultASTFactoryImpl())
44+
app.registerService<PsiBuilderFactory>(PsiBuilderFactoryImpl())
45+
46+
app.registerService<EditorFactory>(MockEditorFactoryEx())
47+
app.registerService<EncodingManager>(EncodingManagerImpl(CoroutineScope(Dispatchers.IO)))
48+
}
49+
50+
fun registerPsiTreeWalker() {
51+
val app = ApplicationManager.getApplication()
52+
app.registerService<ProgressManager>(ProgressManagerImpl())
53+
app.registerService<FileDocumentManager>(MockFileDocumentManagerImpl(FileDocumentManagerImpl.HARD_REF_TO_DOCUMENT_KEY) {
54+
EditorFactory.getInstance().createDocument(it)
55+
})
56+
}
57+
1258
@Suppress("UNCHECKED_CAST")
1359
fun parseText(text: String): File = createVirtualFile("testcase.xqy", text).toPsiFile(project) as File
1460

src/intellij-test/main/uk/co/reecedunn/intellij/plugin/core/tests/parser/ParsingTestCase.kt

Lines changed: 0 additions & 57 deletions
This file was deleted.

src/lang-xdm/test/uk/co/reecedunn/intellij/plugin/xdm/tests/functions/op/FunctionsAndOperatorsTest.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2018, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.xdm.tests.functions.op
33

4+
import com.intellij.lang.Language
45
import com.intellij.openapi.extensions.PluginId
56
import org.hamcrest.CoreMatchers.`is`
67
import org.hamcrest.MatcherAssert.assertThat
@@ -10,8 +11,9 @@ import org.junit.jupiter.api.Test
1011
import uk.co.reecedunn.intellij.plugin.core.extensions.registerService
1112
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerExtension
1213
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerFileType
13-
import uk.co.reecedunn.intellij.plugin.core.tests.parser.ParsingTestCase
14+
import uk.co.reecedunn.intellij.plugin.core.tests.parser.LanguageParserTestCase
1415
import uk.co.reecedunn.intellij.plugin.core.tests.parser.parse
16+
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.IdeaPlatformTestCase
1517
import uk.co.reecedunn.intellij.plugin.xdm.functions.op.qname_equal
1618
import uk.co.reecedunn.intellij.plugin.xdm.types.XsQNameValue
1719
import uk.co.reecedunn.intellij.plugin.xpath.lang.XPath
@@ -29,11 +31,13 @@ import uk.co.reecedunn.intellij.plugin.xquery.project.settings.XQueryProjectSett
2931

3032
@Suppress("RedundantVisibilityModifier")
3133
@DisplayName("XPath and XQuery Functions and Operators 3.1")
32-
class FunctionsAndOperatorsTest : ParsingTestCase<XQueryModule>(XQuery) {
34+
class FunctionsAndOperatorsTest : IdeaPlatformTestCase(), LanguageParserTestCase<XQueryModule> {
3335
override val pluginId: PluginId = PluginId.getId("FunctionsAndOperatorsTest")
36+
override val language: Language = XQuery
3437

3538
override fun registerServicesAndExtensions() {
36-
super.registerServicesAndExtensions()
39+
registerPsiFileFactory()
40+
registerPsiTreeWalker()
3741

3842
XPathASTFactory().registerExtension(project, XPath)
3943
XPathParserDefinition().registerExtension(project)

src/lang-xpath/test/uk/co/reecedunn/intellij/plugin/xpath/tests/completion/XPathCompletionFilterTest.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2019-2021, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.xpath.tests.completion
33

4+
import com.intellij.lang.Language
45
import com.intellij.openapi.extensions.PluginId
56
import com.intellij.psi.PsiFile
67
import com.intellij.util.ProcessingContext
@@ -11,7 +12,8 @@ import org.junit.jupiter.api.Nested
1112
import org.junit.jupiter.api.Test
1213
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerExtension
1314
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerFileType
14-
import uk.co.reecedunn.intellij.plugin.core.tests.parser.ParsingTestCase
15+
import uk.co.reecedunn.intellij.plugin.core.tests.parser.LanguageParserTestCase
16+
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.IdeaPlatformTestCase
1517
import uk.co.reecedunn.intellij.plugin.xpath.completion.filters.*
1618
import uk.co.reecedunn.intellij.plugin.xpath.lang.XPath as XPathLanguage
1719
import uk.co.reecedunn.intellij.plugin.xpath.lang.fileTypes.XPathFileType
@@ -21,11 +23,13 @@ import uk.co.reecedunn.intellij.plugin.xpm.optree.function.XpmFunctionProvider
2123

2224
@Suppress("RedundantVisibilityModifier")
2325
@DisplayName("XPath 3.1 - Code Completion - Completion Filters")
24-
class XPathCompletionFilterTest : ParsingTestCase<PsiFile>(XPathLanguage) {
26+
class XPathCompletionFilterTest : IdeaPlatformTestCase(), LanguageParserTestCase<PsiFile> {
2527
override val pluginId: PluginId = PluginId.getId("XPathCompletionFilterTest")
28+
override val language: Language = XPathLanguage
2629

2730
override fun registerServicesAndExtensions() {
28-
super.registerServicesAndExtensions()
31+
registerPsiFileFactory()
32+
registerPsiTreeWalker()
2933

3034
XPathASTFactory().registerExtension(project, XPathLanguage)
3135
XPathParserDefinition().registerExtension(project)

src/lang-xpath/test/uk/co/reecedunn/intellij/plugin/xpath/tests/completion/XPathLookupElementTest.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package uk.co.reecedunn.intellij.plugin.xpath.tests.completion
44
import com.intellij.codeInsight.lookup.AutoCompletionPolicy
55
import com.intellij.codeInsight.lookup.LookupElement
66
import com.intellij.codeInsight.lookup.LookupElementPresentation
7+
import com.intellij.lang.Language
78
import com.intellij.openapi.extensions.PluginId
89
import com.intellij.psi.PsiFile
910
import com.intellij.ui.JBColor
@@ -15,7 +16,8 @@ import org.junit.jupiter.api.Test
1516
import uk.co.reecedunn.intellij.plugin.core.tests.codeInsight.lookup.LookupElementTestCase
1617
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerExtension
1718
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerFileType
18-
import uk.co.reecedunn.intellij.plugin.core.tests.parser.ParsingTestCase
19+
import uk.co.reecedunn.intellij.plugin.core.tests.parser.LanguageParserTestCase
20+
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.IdeaPlatformTestCase
1921
import uk.co.reecedunn.intellij.plugin.xpath.completion.lookup.XPathAtomicOrUnionTypeLookup
2022
import uk.co.reecedunn.intellij.plugin.xpath.completion.lookup.XPathInsertText
2123
import uk.co.reecedunn.intellij.plugin.xpath.completion.lookup.XPathKeywordLookup
@@ -28,12 +30,13 @@ import uk.co.reecedunn.intellij.plugin.xpm.optree.function.XpmFunctionProvider
2830

2931
@Suppress("RedundantVisibilityModifier")
3032
@DisplayName("XPath 3.1 - Code Completion - Lookup Element")
31-
class XPathLookupElementTest : ParsingTestCase<PsiFile>(XPathLanguage), LookupElementTestCase<PsiFile> {
33+
class XPathLookupElementTest : IdeaPlatformTestCase(), LanguageParserTestCase<PsiFile>, LookupElementTestCase<PsiFile> {
3234
override val pluginId: PluginId = PluginId.getId("XPathLookupElementTest")
35+
override val language: Language = XPathLanguage
3336

3437
override fun registerServicesAndExtensions() {
35-
super.registerServicesAndExtensions()
36-
38+
registerPsiFileFactory()
39+
registerPsiTreeWalker()
3740
registerDocumentEditing()
3841

3942
XPathASTFactory().registerExtension(project, XPathLanguage)

src/lang-xpath/test/uk/co/reecedunn/intellij/plugin/xpath/tests/lang/editor/folding/XPathFoldingTest.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2017-2021, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.xpath.tests.lang.editor.folding
33

4+
import com.intellij.lang.Language
45
import com.intellij.lang.folding.FoldingBuilderEx
56
import com.intellij.lang.folding.FoldingDescriptor
67
import com.intellij.openapi.extensions.PluginId
@@ -13,7 +14,8 @@ import org.junit.jupiter.api.Test
1314
import uk.co.reecedunn.intellij.plugin.core.psi.document
1415
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerExtension
1516
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerFileType
16-
import uk.co.reecedunn.intellij.plugin.core.tests.parser.ParsingTestCase
17+
import uk.co.reecedunn.intellij.plugin.core.tests.parser.LanguageParserTestCase
18+
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.IdeaPlatformTestCase
1719
import uk.co.reecedunn.intellij.plugin.core.vfs.ResourceVirtualFileSystem
1820
import uk.co.reecedunn.intellij.plugin.xpath.ast.xpath.XPath
1921
import uk.co.reecedunn.intellij.plugin.xpath.lang.editor.folding.XPathFoldingBuilder
@@ -26,11 +28,13 @@ import uk.co.reecedunn.intellij.plugin.xpath.lang.XPath as XPathLanguage
2628

2729
@Suppress("RedundantVisibilityModifier")
2830
@DisplayName("IntelliJ - Custom Language Support - Code Folding - XPath")
29-
class XPathFoldingTest : ParsingTestCase<PsiFile>(XPathLanguage) {
31+
class XPathFoldingTest : IdeaPlatformTestCase(), LanguageParserTestCase<PsiFile> {
3032
override val pluginId: PluginId = PluginId.getId("XPathFoldingTest")
33+
override val language: Language = XPathLanguage
3134

3235
override fun registerServicesAndExtensions() {
33-
super.registerServicesAndExtensions()
36+
registerPsiFileFactory()
37+
registerPsiTreeWalker()
3438

3539
XPathASTFactory().registerExtension(project, XPathLanguage)
3640
XPathParserDefinition().registerExtension(project)

src/lang-xpath/test/uk/co/reecedunn/intellij/plugin/xpath/tests/lang/editor/parameters/XPathParameterInfoHandlerTest.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2019, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.xpath.tests.lang.editor.parameters
33

4+
import com.intellij.lang.Language
45
import com.intellij.openapi.extensions.PluginId
56
import com.intellij.psi.PsiFile
67
import com.intellij.testFramework.utils.parameterInfo.MockUpdateParameterInfoContext
@@ -14,7 +15,7 @@ import uk.co.reecedunn.intellij.plugin.core.tests.lang.parameterInfo.MockCreateP
1415
import uk.co.reecedunn.intellij.plugin.core.tests.lang.parameterInfo.ParameterInfoTestCase
1516
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerExtension
1617
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerFileType
17-
import uk.co.reecedunn.intellij.plugin.core.tests.parser.ParsingTestCase
18+
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.IdeaPlatformTestCase
1819
import uk.co.reecedunn.intellij.plugin.xpath.ast.xpath.XPathArgumentList
1920
import uk.co.reecedunn.intellij.plugin.xpath.lang.XPath as XPathLanguage
2021
import uk.co.reecedunn.intellij.plugin.xpath.lang.editor.parameters.XPathParameterInfoHandler
@@ -26,11 +27,13 @@ import uk.co.reecedunn.intellij.plugin.xpm.optree.function.XpmFunctionProvider
2627

2728
@Suppress("RedundantVisibilityModifier")
2829
@DisplayName("IntelliJ - Custom Language Support - Parameter Info - XPath ParameterInfoHandler")
29-
class XPathParameterInfoHandlerTest : ParsingTestCase<PsiFile>(XPathLanguage), ParameterInfoTestCase<PsiFile> {
30+
class XPathParameterInfoHandlerTest : IdeaPlatformTestCase(), ParameterInfoTestCase<PsiFile> {
3031
override val pluginId: PluginId = PluginId.getId("XPathParameterInfoHandlerTest")
32+
override val language: Language = XPathLanguage
3133

3234
override fun registerServicesAndExtensions() {
33-
super.registerServicesAndExtensions()
35+
registerPsiFileFactory()
36+
registerPsiTreeWalker()
3437

3538
XPathASTFactory().registerExtension(project, XPathLanguage)
3639
XPathParserDefinition().registerExtension(project)

src/lang-xpath/test/uk/co/reecedunn/intellij/plugin/xpath/tests/lang/highlighter/XPathSemanticHighlighterTest.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2016-2021, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.xpath.tests.lang.highlighter
33

4+
import com.intellij.lang.Language
45
import com.intellij.openapi.extensions.PluginId
56
import org.hamcrest.CoreMatchers.`is`
67
import org.hamcrest.MatcherAssert.assertThat
@@ -10,8 +11,9 @@ import org.junit.jupiter.api.Test
1011
import uk.co.reecedunn.intellij.plugin.core.tests.lang.annotation.AnnotationTestCase
1112
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerExtension
1213
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerFileType
13-
import uk.co.reecedunn.intellij.plugin.core.tests.parser.ParsingTestCase
14+
import uk.co.reecedunn.intellij.plugin.core.tests.parser.LanguageParserTestCase
1415
import uk.co.reecedunn.intellij.plugin.core.tests.parser.parse
16+
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.IdeaPlatformTestCase
1517
import uk.co.reecedunn.intellij.plugin.xpath.lang.XPath as XPathLanguage
1618
import uk.co.reecedunn.intellij.plugin.xpath.ast.xpath.XPath
1719
import uk.co.reecedunn.intellij.plugin.xpath.lang.fileTypes.XPathFileType
@@ -24,11 +26,13 @@ import uk.co.reecedunn.intellij.plugin.xpm.optree.variable.XpmVariableProvider
2426

2527
@Suppress("ClassName", "RedundantVisibilityModifier")
2628
@DisplayName("IntelliJ - Custom Language Support - Syntax Highlighting - XPath Semantic Highlighter")
27-
class XPathSemanticHighlighterTest : ParsingTestCase<XPath>(XPathLanguage), AnnotationTestCase {
29+
class XPathSemanticHighlighterTest : IdeaPlatformTestCase(), LanguageParserTestCase<XPath>, AnnotationTestCase {
2830
override val pluginId: PluginId = PluginId.getId("XPathSemanticHighlighterTest")
31+
override val language: Language = XPathLanguage
2932

3033
override fun registerServicesAndExtensions() {
31-
super.registerServicesAndExtensions()
34+
registerPsiFileFactory()
35+
registerPsiTreeWalker()
3236

3337
XPathASTFactory().registerExtension(project, XPathLanguage)
3438
XPathParserDefinition().registerExtension(project)

src/lang-xpath/test/uk/co/reecedunn/intellij/plugin/xpath/tests/parser/FullTextParserTest.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2017-2020, 2025 Reece H. Dunn. SPDX-License-Identifier: Apache-2.0
22
package uk.co.reecedunn.intellij.plugin.xpath.tests.parser
33

4+
import com.intellij.lang.Language
45
import com.intellij.openapi.extensions.PluginId
56
import com.intellij.psi.PsiFile
67
import org.hamcrest.CoreMatchers.`is`
@@ -11,7 +12,8 @@ import org.junit.jupiter.api.Test
1112
import uk.co.reecedunn.intellij.plugin.core.psi.toPsiTreeString
1213
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerExtension
1314
import uk.co.reecedunn.intellij.plugin.core.tests.lang.registerFileType
14-
import uk.co.reecedunn.intellij.plugin.core.tests.parser.ParsingTestCase
15+
import uk.co.reecedunn.intellij.plugin.core.tests.parser.LanguageParserTestCase
16+
import uk.co.reecedunn.intellij.plugin.core.tests.testFramework.IdeaPlatformTestCase
1517
import uk.co.reecedunn.intellij.plugin.core.vfs.ResourceVirtualFileSystem
1618
import uk.co.reecedunn.intellij.plugin.core.vfs.decode
1719
import uk.co.reecedunn.intellij.plugin.xpath.ast.xpath.XPath
@@ -23,11 +25,13 @@ import uk.co.reecedunn.intellij.plugin.xpm.optree.function.XpmFunctionProvider
2325

2426
@Suppress("ClassName", "Reformat", "RedundantVisibilityModifier")
2527
@DisplayName("XPath 3.1 with Full Text 3.0 - Parser")
26-
class FullTextParserTest : ParsingTestCase<PsiFile>(XPathLanguage) {
28+
class FullTextParserTest : IdeaPlatformTestCase(), LanguageParserTestCase<PsiFile> {
2729
override val pluginId: PluginId = PluginId.getId("FullTextParserTest")
30+
override val language: Language = XPathLanguage
2831

2932
override fun registerServicesAndExtensions() {
30-
super.registerServicesAndExtensions()
33+
registerPsiFileFactory()
34+
registerPsiTreeWalker()
3135

3236
XPathASTFactory().registerExtension(project, XPathLanguage)
3337
XPathParserDefinition().registerExtension(project)

0 commit comments

Comments
 (0)