// 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.k2.refactoring.introduce;

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("refactorings/kotlin.refactorings.tests.k2")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public abstract class K2ExtractionTestGenerated extends AbstractK2ExtractionTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/extractSuperclass")
    public static class ExtractSuperclass extends AbstractK2ExtractionTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

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

        @TestMetadata("abstractedMemberUsingPrivate.kt")
        public void testAbstractedMemberUsingPrivate() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/abstractedMemberUsingPrivate.kt");
        }

        @TestMetadata("addSuperclassNoSecondaryConstructors.kt")
        public void testAddSuperclassNoSecondaryConstructors() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/addSuperclassNoSecondaryConstructors.kt");
        }

        @TestMetadata("addSuperclassOnlySecondaryConstructors.kt")
        public void testAddSuperclassOnlySecondaryConstructors() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/addSuperclassOnlySecondaryConstructors.kt");
        }

        @TestMetadata("addSuperclassPrimaryConstructor.kt")
        public void testAddSuperclassPrimaryConstructor() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/addSuperclassPrimaryConstructor.kt");
        }

        @TestMetadata("addTypeParameters.kt")
        public void testAddTypeParameters() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/addTypeParameters.kt");
        }

        @TestMetadata("addTypeParametersWithAbstract.kt")
        public void testAddTypeParametersWithAbstract() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/addTypeParametersWithAbstract.kt");
        }

        @TestMetadata("annotation.kt")
        public void testAnnotation() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/annotation.kt");
        }

        @TestMetadata("classAlreadyExists.kt")
        public void testClassAlreadyExists() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/classAlreadyExists.kt");
        }

        @TestMetadata("dropPropertyParameterModifiers.kt")
        public void testDropPropertyParameterModifiers() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/dropPropertyParameterModifiers.kt");
        }

        @TestMetadata("enum.kt")
        public void testEnum() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/enum.kt");
        }

        @TestMetadata("extractToExistingFile.kt")
        public void testExtractToExistingFile() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/extractToExistingFile.kt");
        }

        @TestMetadata("interface.kt")
        public void testInterface() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/interface.kt");
        }

        @TestMetadata("noWarningOnVisibilityInsideAbstractedMember.kt")
        public void testNoWarningOnVisibilityInsideAbstractedMember() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/noWarningOnVisibilityInsideAbstractedMember.kt");
        }

        @TestMetadata("privateClass.kt")
        public void testPrivateClass() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/privateClass.kt");
        }

        @TestMetadata("privateMember.kt")
        public void testPrivateMember() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/privateMember.kt");
        }

        @TestMetadata("privateMemberWithUsages.kt")
        public void testPrivateMemberWithUsages() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/privateMemberWithUsages.kt");
        }

        @TestMetadata("reformatModifierList.kt")
        public void testReformatModifierList() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/reformatModifierList.kt");
        }

        @TestMetadata("replaceSuperclass.kt")
        public void testReplaceSuperclass() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/replaceSuperclass.kt");
        }

        @TestMetadata("specialName.kt")
        public void testSpecialName() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/specialName.kt");
        }

        @TestMetadata("typealiasAlreadyExists.kt")
        public void testTypealiasAlreadyExists() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractSuperclass/typealiasAlreadyExists.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/extractInterface")
    public static class ExtractInterface extends AbstractK2ExtractionTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

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

        @TestMetadata("abstractedMemberUsingPrivate.kt")
        public void testAbstractedMemberUsingPrivate() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/abstractedMemberUsingPrivate.kt");
        }

        @TestMetadata("addImportOnParameterPullUp.kt")
        public void testAddImportOnParameterPullUp() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/addImportOnParameterPullUp.kt");
        }

        @TestMetadata("addInterface.kt")
        public void testAddInterface() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/addInterface.kt");
        }

        @TestMetadata("addInterfaceWithAbstract.kt")
        public void testAddInterfaceWithAbstract() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/addInterfaceWithAbstract.kt");
        }

        @TestMetadata("addTypeParameters.kt")
        public void testAddTypeParameters() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/addTypeParameters.kt");
        }

        @TestMetadata("addTypeParametersWithAbstract.kt")
        public void testAddTypeParametersWithAbstract() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/addTypeParametersWithAbstract.kt");
        }

        @TestMetadata("annotation.kt")
        public void testAnnotation() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/annotation.kt");
        }

        @TestMetadata("dropFinal.kt")
        public void testDropFinal() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/dropFinal.kt");
        }

        @TestMetadata("extractToExistingFile.kt")
        public void testExtractToExistingFile() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/extractToExistingFile.kt");
        }

        @TestMetadata("liftInternal.kt")
        public void testLiftInternal() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/liftInternal.kt");
        }

        @TestMetadata("liftPrivate.kt")
        public void testLiftPrivate() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/liftPrivate.kt");
        }

        @TestMetadata("liftProtected.kt")
        public void testLiftProtected() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/liftProtected.kt");
        }

        @TestMetadata("noWarningOnVisibilityInsideAbstractedMember.kt")
        public void testNoWarningOnVisibilityInsideAbstractedMember() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/noWarningOnVisibilityInsideAbstractedMember.kt");
        }

        @TestMetadata("privateMemberWithUsages.kt")
        public void testPrivateMemberWithUsages() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/privateMemberWithUsages.kt");
        }

        @TestMetadata("specialName.kt")
        public void testSpecialName() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractInterface/specialName.kt");
        }
    }
}
