From 3a38f78b145a7d3aa5560ce3da0dfb641d9b3f0f Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Wed, 5 Jul 2023 10:14:56 -0700 Subject: [PATCH] Move unnecessary_null_in_if_null_operators tests (#4524) * Move unnecessary_null_in_if_null_operators tests * rename --- test/rules/all.dart | 3 + ...essary_null_in_if_null_operators_test.dart | 72 +++++++++++++++++++ ...unnecessary_null_in_if_null_operators.dart | 17 ----- 3 files changed, 75 insertions(+), 17 deletions(-) create mode 100644 test/rules/unnecessary_null_in_if_null_operators_test.dart delete mode 100644 test_data/rules/unnecessary_null_in_if_null_operators.dart diff --git a/test/rules/all.dart b/test/rules/all.dart index 4d3ad0b43..a12342e71 100644 --- a/test/rules/all.dart +++ b/test/rules/all.dart @@ -146,6 +146,8 @@ import 'unnecessary_new_test.dart' as unnecessary_new; import 'unnecessary_null_aware_assignments_test.dart' as unnecessary_null_aware_assignments; import 'unnecessary_null_checks_test.dart' as unnecessary_null_checks; +import 'unnecessary_null_in_if_null_operators_test.dart' + as unnecessary_null_in_if_null_operators; import 'unnecessary_nullable_for_final_variable_declarations_test.dart' as unnecessary_nullable_for_final_variable_declarations; import 'unnecessary_overrides_test.dart' as unnecessary_overrides; @@ -285,6 +287,7 @@ void main() { unnecessary_new.main(); unnecessary_null_aware_assignments.main(); unnecessary_null_checks.main(); + unnecessary_null_in_if_null_operators.main(); unnecessary_nullable_for_final_variable_declarations.main(); unnecessary_overrides.main(); unnecessary_parenthesis.main(); diff --git a/test/rules/unnecessary_null_in_if_null_operators_test.dart b/test/rules/unnecessary_null_in_if_null_operators_test.dart new file mode 100644 index 000000000..085eb253b --- /dev/null +++ b/test/rules/unnecessary_null_in_if_null_operators_test.dart @@ -0,0 +1,72 @@ +// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +import '../rule_test_support.dart'; + +main() { + defineReflectiveSuite(() { + defineReflectiveTests(UnnecessaryNullInIfNullOperatorsLanguage29Test); + }); +} + +@reflectiveTest +class UnnecessaryNullInIfNullOperatorsLanguage29Test extends LintRuleTest { + @override + String get lintRule => 'unnecessary_null_in_if_null_operators'; + + @override + String get testPackageLanguageVersion => '2.9'; + + test_localVariableDeclaration_noNull() async { + await assertNoDiagnostics(r''' +void f() { + var x = 1 ?? 1; +} +'''); + } + + test_localVariableDeclaration_nullOnLeft() async { + await assertDiagnostics(r''' +void f() { + var x = null ?? 1; +} +''', [ + lint(21, 9), + ]); + } + + test_localVariableDeclaration_nullOnRight() async { + await assertDiagnostics(r''' +void f() { + var x = 1 ?? null; +} +''', [ + lint(21, 9), + ]); + } + + test_topLevelVariableDeclaration_noNull() async { + await assertNoDiagnostics(r''' +var x = 1 ?? 1; +'''); + } + + test_topLevelVariableDeclaration_nullOnLeft() async { + await assertDiagnostics(r''' +var x = null ?? 1; +''', [ + lint(8, 9), + ]); + } + + test_topLevelVariableDeclaration_nullOnRight() async { + await assertDiagnostics(r''' +var x = 1 ?? null; +''', [ + lint(8, 9), + ]); + } +} diff --git a/test_data/rules/unnecessary_null_in_if_null_operators.dart b/test_data/rules/unnecessary_null_in_if_null_operators.dart deleted file mode 100644 index 99b3605e6..000000000 --- a/test_data/rules/unnecessary_null_in_if_null_operators.dart +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -// test w/ `dart test -N unnecessary_null_in_if_null_operators` - -var x = 1 ?? null; //LINT -var y = 1 ?? 1; //OK -var z = null ?? 1; //LINT - -class X { - m1() { - var x = 1 ?? null; //LINT - var y = 1 ?? 1; //OK - var z = null ?? 1; //LINT - } -}