package com.jetbrains.lang.dart.generate;
import com.intellij.testFramework.LightPlatformCodeInsightTestCase;
import com.jetbrains.lang.dart.ide.generation.*;
import org.jetbrains.annotations.NotNull;
abstract public class DartGenerateActionTestBase extends LightPlatformCodeInsightTestCase {
protected void doOverrideTest() {
doTest(new DartOverrideMethodHandler());
}
protected void doEqualsAndHashcodeTest() {
doTest(new DartGenerateEqualsAndHashcodeHandler());
}
protected void doImplementTest() {
doTest(new DartImplementMethodHandler());
}
protected void doGetterSetterTest(CreateGetterSetterFix.Strategy strategy) {
doTest(new DartGenerateAccessorHandler(strategy) {
@Override
@NotNull
protected String getTitle() {
return "";
}
});
}
protected void doConstructorTest() {
doTest(new DartGenerateConstructorHandler());
}
protected void doNamedConstructorTest() {
doTest(new DartGenerateNamedConstructorHandler());
}
protected void doToStringTest() {
doTest(new DartGenerateToStringHandler());
}
protected void doTest(BaseDartGenerateHandler anAction) {
configure();
anAction.invoke(getProject(), getEditor(), getFile());
checkResultByFile(getTestName(false) + ".txt");
}
@Override
protected void checkResultByText(String message,
@NotNull String expectedFileText,
boolean ignoreTrailingSpaces,
String filePath) {
//remove all
super.checkResultByText(message, expectedFileText.replaceAll("<spaces>", ""), ignoreTrailingSpaces, filePath);
}
protected void configure() {
configureByFile(getTestName(false) + ".dart");
}
}