// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.idea.resolve;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("idea/tests")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public abstract class ReferenceResolveInJavaTestGenerated extends AbstractReferenceResolveInJavaTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/resolve/referenceInJava/binaryAndSource")
    public static class BinaryAndSource extends AbstractReferenceResolveInJavaTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
        }

        @TestMetadata("Class.java")
        public void testClass() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/Class.java");
        }

        @TestMetadata("ClassCompanionJvmField.java")
        public void testClassCompanionJvmField() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ClassCompanionJvmField.java");
        }

        @TestMetadata("ClassFieldExplicit.java")
        public void testClassFieldExplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ClassFieldExplicit.java");
        }

        @TestMetadata("ClassJvmField.java")
        public void testClassJvmField() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ClassJvmField.java");
        }

        @TestMetadata("ClassJvmFieldCompanionExplicit.java")
        public void testClassJvmFieldCompanionExplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ClassJvmFieldCompanionExplicit.java");
        }

        @TestMetadata("ClassJvmFieldCompanionImplicit.java")
        public void testClassJvmFieldCompanionImplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ClassJvmFieldCompanionImplicit.java");
        }

        @TestMetadata("ClassObjectField.java")
        public void testClassObjectField() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ClassObjectField.java");
        }

        @TestMetadata("CompanionAndClassJvmFieldExplicit.java")
        public void testCompanionAndClassJvmFieldExplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/CompanionAndClassJvmFieldExplicit.java");
        }

        @TestMetadata("CompanionAndClassJvmFieldImplicit.java")
        public void testCompanionAndClassJvmFieldImplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/CompanionAndClassJvmFieldImplicit.java");
        }

        @TestMetadata("CompanionFieldExplicit.java")
        public void testCompanionFieldExplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/CompanionFieldExplicit.java");
        }

        @TestMetadata("CompanionFieldImplicit.java")
        public void testCompanionFieldImplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/CompanionFieldImplicit.java");
        }

        @TestMetadata("CompanionJvmFieldExplicit.java")
        public void testCompanionJvmFieldExplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/CompanionJvmFieldExplicit.java");
        }

        @TestMetadata("CompanionJvmFieldImplicit.java")
        public void testCompanionJvmFieldImplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/CompanionJvmFieldImplicit.java");
        }

        @TestMetadata("Constructor.java")
        public void testConstructor() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/Constructor.java");
        }

        @TestMetadata("EnumEntry.java")
        public void testEnumEntry() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/EnumEntry.java");
        }

        @TestMetadata("FacadeProperty.java")
        public void testFacadeProperty() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/FacadeProperty.java");
        }

        @TestMetadata("FacadePropertyJvmField.java")
        public void testFacadePropertyJvmField() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/FacadePropertyJvmField.java");
        }

        @TestMetadata("Field.java")
        public void testField() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/Field.java");
        }

        @TestMetadata("FileFacade.java")
        public void testFileFacade() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/FileFacade.java");
        }

        @TestMetadata("Getter.java")
        public void testGetter() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/Getter.java");
        }

        @TestMetadata("Method.java")
        public void testMethod() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/Method.java");
        }

        @TestMetadata("MethodOfDeeplyNested.java")
        public void testMethodOfDeeplyNested() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/MethodOfDeeplyNested.java");
        }

        @TestMetadata("MethodWithParameters.java")
        public void testMethodWithParameters() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/MethodWithParameters.java");
        }

        @TestMetadata("MultifileFacade1.java")
        public void testMultifileFacade1() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/MultifileFacade1.java");
        }

        @TestMetadata("MultifileFacade2.java")
        public void testMultifileFacade2() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/MultifileFacade2.java");
        }

        @TestMetadata("ObjectInstance.java")
        public void testObjectInstance() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ObjectInstance.java");
        }

        @TestMetadata("ObjectPropertyExplicit.java")
        public void testObjectPropertyExplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ObjectPropertyExplicit.java");
        }

        @TestMetadata("ObjectPropertyImplicit.java")
        public void testObjectPropertyImplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ObjectPropertyImplicit.java");
        }

        @TestMetadata("ObjectPropertyJvmFieldExplicit.java")
        public void testObjectPropertyJvmFieldExplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ObjectPropertyJvmFieldExplicit.java");
        }

        @TestMetadata("ObjectPropertyJvmFieldImplicit.java")
        public void testObjectPropertyJvmFieldImplicit() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/ObjectPropertyJvmFieldImplicit.java");
        }

        @TestMetadata("PlatformStaticFun.java")
        public void testPlatformStaticFun() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/PlatformStaticFun.java");
        }

        @TestMetadata("SingleFileMultifileFacade.java")
        public void testSingleFileMultifileFacade() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/SingleFileMultifileFacade.java");
        }

        @TestMetadata("SuspendFunction.java")
        public void testSuspendFunction() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/SuspendFunction.java");
        }

        @TestMetadata("SuspendLambdaParam0.java")
        public void testSuspendLambdaParam0() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/SuspendLambdaParam0.java");
        }

        @TestMetadata("SuspendLambdaParam1.java")
        public void testSuspendLambdaParam1() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/SuspendLambdaParam1.java");
        }

        @TestMetadata("SuspendLambdaParam21.java")
        public void testSuspendLambdaParam21() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/SuspendLambdaParam21.java");
        }

        @TestMetadata("SuspendLambdaParam22.java")
        public void testSuspendLambdaParam22() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/SuspendLambdaParam22.java");
        }

        @TestMetadata("TopLevelFunction.java")
        public void testTopLevelFunction() throws Exception {
            runTest("testData/resolve/referenceInJava/binaryAndSource/TopLevelFunction.java");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/resolve/referenceInJava/sourceOnly")
    public static class SourceOnly extends AbstractReferenceResolveInJavaTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
        }

        @TestMetadata("AnnotationParameterReference.java")
        public void testAnnotationParameterReference() throws Exception {
            runTest("testData/resolve/referenceInJava/sourceOnly/AnnotationParameterReference.java");
        }

        @TestMetadata("AutoGeneratedOverloads.java")
        public void testAutoGeneratedOverloads() throws Exception {
            runTest("testData/resolve/referenceInJava/sourceOnly/AutoGeneratedOverloads.java");
        }

        @TestMetadata("ClassObjectStaticField.java")
        public void testClassObjectStaticField() throws Exception {
            runTest("testData/resolve/referenceInJava/sourceOnly/ClassObjectStaticField.java");
        }

        @TestMetadata("DelegatedMethodFromInterfaceNoImpl.java")
        public void testDelegatedMethodFromInterfaceNoImpl() throws Exception {
            runTest("testData/resolve/referenceInJava/sourceOnly/DelegatedMethodFromInterfaceNoImpl.java");
        }

        @TestMetadata("DelegatedMethodFromInterfaceWithImpl.java")
        public void testDelegatedMethodFromInterfaceWithImpl() throws Exception {
            runTest("testData/resolve/referenceInJava/sourceOnly/DelegatedMethodFromInterfaceWithImpl.java");
        }

        @TestMetadata("KotlinCollection.java")
        public void testKotlinCollection() throws Exception {
            runTest("testData/resolve/referenceInJava/sourceOnly/KotlinCollection.java");
        }
    }
}
