void (@NotNull Project project, @NotNull PsiElement methodNameIdentifier, @NotNull ModPsiUpdater updater) { final PsiElement parent = methodNameIdentifier.getParent(); if (parent == null) { return; } final PsiMethodCallExpression callExpression = (PsiMethodCallExpression)parent.getParent(); final AssertHint assertHint = AssertHint.createAssertEqualsHint(callExpression); if (assertHint != null && isAssertEqualsThatCouldBeAssertLiteral(assertHint)) { replaceAssertEqualsWithAssertLiteral(assertHint); } else { final AssertHint assertTrueFalseHint = AssertHint.createAssertTrueFalseHint(callExpression); if (assertTrueFalseHint == null) { return; } final boolean assertTrue = assertTrueFalseHint.isAssertTrue(); final PsiExpression argument = assertTrueFalseHint.getFirstArgument(); if (ComparisonUtils.isNullComparison(argument)) { replaceAssertWithAssertNull(assertTrueFalseHint); } else if (isIdentityComparison(argument)) { replaceWithAssertSame(assertTrueFalseHint); } else if (assertTrue && isEqualityComparison(argument)) { replaceWithAssertEquals(assertTrueFalseHint, "assertEquals"); } else if (isAssertThatCouldBeFail(argument, !assertTrue)) { replaceWithFail(assertTrueFalseHint); } else if (isEqualityComparison(argument)) { replaceWithAssertEquals(assertTrueFalseHint, "assertNotEquals"); } else if (assertTrue && isArrayEqualityComparison(argument)) { replaceWithAssertEquals(assertTrueFalseHint, "assertArrayEquals"); } else if (BoolUtils.isNegation(argument)) { replaceWithNegatedBooleanAssertion(assertTrueFalseHint); } else if (assertTrue && isInstanceOfComparison(argument) && isInstanceOfMethodExistsWithMatchingParams(assertTrueFalseHint)) { replaceWithInstanceOfComparison(assertTrueFalseHint); } } }