Implemented AssertThatBooleanIsTrueOrFalseInspection.

This commit is contained in:
2019-03-23 22:44:22 +01:00
parent 80104004d0
commit 8051511524
14 changed files with 241 additions and 12 deletions
@@ -14,5 +14,38 @@ public class Playground {
assertThat(new String[1].length).isLessThanOrEqualTo(1);
assertThat(new String[1]).hasSameSizeAs(new Object());
assertThat("").isEqualTo(null);
assertThat(true).isTrue();
assertThat(true).isEqualTo(true);
assertThat(Boolean.TRUE).isEqualTo(Boolean.FALSE);
assertThat(Boolean.TRUE).isEqualTo(true);
}
private void booleanIsTrueOrFalse() {
boolean primitive = false;
Boolean object = java.lang.Boolean.TRUE;
assertThat(primitive).isEqualTo(Boolean.TRUE);
assertThat(primitive).isEqualTo(Boolean.FALSE);
assertThat(object).isEqualTo(Boolean.TRUE);
assertThat(object).isEqualTo(Boolean.FALSE);
assertThat(primitive).isEqualTo(true);
assertThat(primitive).isEqualTo(false);
assertThat(object).isEqualTo(true);
assertThat(object).isEqualTo(false);
assertThat(primitive).isNotEqualTo(Boolean.TRUE);
assertThat(primitive).isNotEqualTo(Boolean.FALSE);
assertThat(object).isNotEqualTo(Boolean.TRUE);
assertThat(object).isNotEqualTo(Boolean.FALSE);
assertThat(primitive).isNotEqualTo(true);
assertThat(primitive).isNotEqualTo(false);
assertThat(object).isNotEqualTo(true);
assertThat(object).isNotEqualTo(false);
assertThat(primitive).as("nah").isEqualTo(true && !true);
assertThat(object).isEqualTo(Boolean.TRUE && !Boolean.TRUE);
assertThat("").isEqualTo(Boolean.TRUE);
}
}
@@ -59,8 +59,8 @@ abstract class AbstractCajonTest {
}
}
protected fun executeQuickFixes(myFixture: JavaCodeInsightTestFixture, expectedFixes: Int) {
val quickfixes = myFixture.getAllQuickFixes()
protected fun executeQuickFixes(myFixture: JavaCodeInsightTestFixture, regex: Regex, expectedFixes: Int) {
val quickfixes = myFixture.getAllQuickFixes().filter { it.familyName.matches(regex) }
assertThat(quickfixes).hasSize(expectedFixes)
quickfixes.forEach(myFixture::launchAction)
}
@@ -0,0 +1,21 @@
package de.platon42.intellij.plugins.cajon.inspections
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture
import de.platon42.intellij.jupiter.MyFixture
import de.platon42.intellij.jupiter.TestDataSubPath
import de.platon42.intellij.plugins.cajon.AbstractCajonTest
import org.junit.jupiter.api.Test
internal class AssertThatBooleanIsTrueOrFalseInspectionTest : AbstractCajonTest() {
@Test
@TestDataSubPath("inspections/BooleanIsTrueOrFalse")
internal fun assertThat_with_isEqualTo_true_or_false_can_use_isTrue_or_isFalse(@MyFixture myFixture: JavaCodeInsightTestFixture) {
runTest {
myFixture.enableInspections(AssertThatBooleanIsTrueOrFalseInspection::class.java)
myFixture.configureByFile("BooleanIsTrueOrFalseBefore.java")
executeQuickFixes(myFixture, Regex("Replace is.*"), 17)
myFixture.checkResultByFile("BooleanIsTrueOrFalseAfter.java")
}
}
}
@@ -14,7 +14,7 @@ internal class AssertThatObjectIsNotNullInspectionTest : AbstractCajonTest() {
runTest {
myFixture.enableInspections(AssertThatObjectIsNotNullInspection::class.java)
myFixture.configureByFile("ObjectIsNotNullBefore.java")
executeQuickFixes(myFixture, 3)
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isNotEqualTo(null) with isNotNull()"), 3)
myFixture.checkResultByFile("ObjectIsNotNullAfter.java")
}
}
@@ -14,7 +14,7 @@ internal class AssertThatObjectIsNullInspectionTest : AbstractCajonTest() {
runTest {
myFixture.enableInspections(AssertThatObjectIsNullInspection::class.java)
myFixture.configureByFile("ObjectIsNullBefore.java")
executeQuickFixes(myFixture, 3)
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo(null) with isNull()"), 3)
myFixture.checkResultByFile("ObjectIsNullAfter.java")
}
}
@@ -0,0 +1,32 @@
import static org.assertj.core.api.Assertions.assertThat;
public class BooleanIsTrueOrFalse {
private void booleanIsTrueOrFalse() {
boolean primitive = false;
Boolean object = Boolean.TRUE;
assertThat(primitive).isTrue();
assertThat(primitive).isFalse();
assertThat(object).isTrue();
assertThat(object).isFalse();
assertThat(primitive).isTrue();
assertThat(primitive).isFalse();
assertThat(object).isTrue();
assertThat(object).isFalse();
assertThat(primitive).isFalse();
assertThat(primitive).isTrue();
assertThat(object).isFalse();
assertThat(object).isTrue();
assertThat(primitive).isFalse();
assertThat(primitive).isTrue();
assertThat(object).isFalse();
assertThat(object).isTrue();
assertThat(primitive).as("nah").isFalse();
assertThat(object).isEqualTo(Boolean.TRUE && !Boolean.TRUE);
assertThat("").isEqualTo(Boolean.TRUE);
}
}
@@ -0,0 +1,32 @@
import static org.assertj.core.api.Assertions.assertThat;
public class BooleanIsTrueOrFalse {
private void booleanIsTrueOrFalse() {
boolean primitive = false;
Boolean object = Boolean.TRUE;
assertThat(primitive).isEqualTo(Boolean.TRUE);
assertThat(primitive).isEqualTo(Boolean.FALSE);
assertThat(object).isEqualTo(Boolean.TRUE);
assertThat(object).isEqualTo(Boolean.FALSE);
assertThat(primitive).isEqualTo(true);
assertThat(primitive).isEqualTo(false);
assertThat(object).isEqualTo(true);
assertThat(object).isEqualTo(false);
assertThat(primitive).isNotEqualTo(Boolean.TRUE);
assertThat(primitive).isNotEqualTo(Boolean.FALSE);
assertThat(object).isNotEqualTo(Boolean.TRUE);
assertThat(object).isNotEqualTo(Boolean.FALSE);
assertThat(primitive).isNotEqualTo(true);
assertThat(primitive).isNotEqualTo(false);
assertThat(object).isNotEqualTo(true);
assertThat(object).isNotEqualTo(false);
assertThat(primitive).as("nah").isEqualTo(true && !true);
assertThat(object).isEqualTo(Boolean.TRUE && !Boolean.TRUE);
assertThat("").isEqualTo(Boolean.TRUE);
}
}