// 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)
@TestMetadata("../../idea/tests/testData/refactoring/introduceConstant")
public abstract class K2IntroduceConstantTestGenerated extends AbstractK2IntroduceConstantTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression")
    public static class BinaryExpression extends AbstractK2IntroduceConstantTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

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

        @TestMetadata("integerCompareTo.kt")
        public void testIntegerCompareTo() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerCompareTo.kt");
        }

        @TestMetadata("integerDec.kt")
        public void testIntegerDec() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerDec.kt");
        }

        @TestMetadata("integerDiv.kt")
        public void testIntegerDiv() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerDiv.kt");
        }

        @TestMetadata("integerEquals.kt")
        public void testIntegerEquals() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerEquals.kt");
        }

        @TestMetadata("integerInc.kt")
        public void testIntegerInc() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerInc.kt");
        }

        @TestMetadata("integerMinus.kt")
        public void testIntegerMinus() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerMinus.kt");
        }

        @TestMetadata("integerPlus.kt")
        public void testIntegerPlus() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerPlus.kt");
        }

        @TestMetadata("integerPlusConstVal.kt")
        public void testIntegerPlusConstVal() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerPlusConstVal.kt");
        }

        @TestMetadata("integerPlusConstValTwice.kt")
        public void testIntegerPlusConstValTwice() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerPlusConstValTwice.kt");
        }

        @TestMetadata("integerPlusFun.kt")
        public void testIntegerPlusFun() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerPlusFun.kt");
        }

        @TestMetadata("integerPlusVal.kt")
        public void testIntegerPlusVal() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerPlusVal.kt");
        }

        @TestMetadata("integerPlusVar.kt")
        public void testIntegerPlusVar() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerPlusVar.kt");
        }

        @TestMetadata("integerRem.kt")
        public void testIntegerRem() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerRem.kt");
        }

        @TestMetadata("integerTimes.kt")
        public void testIntegerTimes() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerTimes.kt");
        }

        @TestMetadata("integerUnaryMinus.kt")
        public void testIntegerUnaryMinus() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerUnaryMinus.kt");
        }

        @TestMetadata("integerUnaryPlus.kt")
        public void testIntegerUnaryPlus() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/integerUnaryPlus.kt");
        }

        @TestMetadata("paranthesis.kt")
        public void testParanthesis() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/paranthesis.kt");
        }

        @TestMetadata("paranthesisBroken.kt")
        public void testParanthesisBroken() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/paranthesisBroken.kt");
        }

        @TestMetadata("stringCompareTo.kt")
        public void testStringCompareTo() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/stringCompareTo.kt");
        }

        @TestMetadata("stringCustomOperator.kt")
        public void testStringCustomOperator() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/stringCustomOperator.kt");
        }

        @TestMetadata("stringEquals.kt")
        public void testStringEquals() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/stringEquals.kt");
        }

        @TestMetadata("stringPlus.kt")
        public void testStringPlus() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/stringPlus.kt");
        }

        @TestMetadata("stringPlusPartNotConst.kt")
        public void testStringPlusPartNotConst() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/binaryExpression/stringPlusPartNotConst.kt");
        }
    }

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

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

        @TestMetadata("and.kt")
        public void testAnd() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/and.kt");
        }

        @TestMetadata("inv.kt")
        public void testInv() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/inv.kt");
        }

        @TestMetadata("or.kt")
        public void testOr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/or.kt");
        }

        @TestMetadata("plus.kt")
        public void testPlus() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/plus.kt");
        }

        @TestMetadata("shl.kt")
        public void testShl() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/shl.kt");
        }

        @TestMetadata("shr.kt")
        public void testShr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/shr.kt");
        }

        @TestMetadata("toByte.kt")
        public void testToByte() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/toByte.kt");
        }

        @TestMetadata("toFloat.kt")
        public void testToFloat() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/toFloat.kt");
        }

        @TestMetadata("ushr.kt")
        public void testUshr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/ushr.kt");
        }

        @TestMetadata("xor.kt")
        public void testXor() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/dotQualifiedExpression/xor.kt");
        }
    }

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

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

        @TestMetadata("brokenEntryWithBlockExpr.kt")
        public void testBrokenEntryWithBlockExpr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/brokenEntryWithBlockExpr.kt");
        }

        @TestMetadata("brokenEntryWithExpr.kt")
        public void testBrokenEntryWithExpr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/brokenEntryWithExpr.kt");
        }

        @TestMetadata("brokenEscapeEntry.kt")
        public void testBrokenEscapeEntry() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/brokenEscapeEntry.kt");
        }

        @TestMetadata("extractFalse.kt")
        public void testExtractFalse() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/extractFalse.kt");
        }

        @TestMetadata("extractIntegerLiteral.kt")
        public void testExtractIntegerLiteral() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/extractIntegerLiteral.kt");
        }

        @TestMetadata("extractTrue.kt")
        public void testExtractTrue() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/extractTrue.kt");
        }

        @TestMetadata("partTemplate.kt")
        public void testPartTemplate() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/partTemplate.kt");
        }

        @TestMetadata("singleEntryPrefix.kt")
        public void testSingleEntryPrefix() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/singleEntryPrefix.kt");
        }

        @TestMetadata("singleEntrySubstring.kt")
        public void testSingleEntrySubstring() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/singleEntrySubstring.kt");
        }

        @TestMetadata("singleEntrySuffix.kt")
        public void testSingleEntrySuffix() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/stringTemplates/singleEntrySuffix.kt");
        }
    }

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

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

        @TestMetadata("extractFromAnnotationArg.kt")
        public void testExtractFromAnnotationArg() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/extractFromAnnotationArg.kt");
        }

        @TestMetadata("extractInteger.kt")
        public void testExtractInteger() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/extractInteger.kt");
        }

        @TestMetadata("extractMultipleExpressions.kt")
        public void testExtractMultipleExpressions() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/extractMultipleExpressions.kt");
        }

        @TestMetadata("extractPartNonConstVal.kt")
        public void testExtractPartNonConstVal() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/extractPartNonConstVal.kt");
        }

        @TestMetadata("extractWithNameClash.kt")
        public void testExtractWithNameClash() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/extractWithNameClash.kt");
        }

        @TestMetadata("onlyCurrentOccurrence.kt")
        public void testOnlyCurrentOccurrence() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceConstant/onlyCurrentOccurrence.kt");
        }
    }
}
