From 98bed5ad141fd544483bb991ec75c2b3d54534a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=BCrth?= Date: Wed, 8 Oct 2014 18:30:53 +0200 Subject: [PATCH] Covered the new allow-unused-foreach-variables setting in UnusedLocalVariable with tests --- .../PHPMD/Rule/UnusedLocalVariableTest.php | 88 +++++++++++++++++++ ...ppliesToUnusedForeachKeyWhenNotIgnored.php | 10 +++ ...liesToUnusedForeachValueWhenNotIgnored.php | 10 +++ ...sNotApplyToUnusedForeachKeyWhenIgnored.php | 10 +++ ...otApplyToUnusedForeachValueWhenIgnored.php | 10 +++ 5 files changed, 128 insertions(+) create mode 100644 src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachKeyWhenNotIgnored.php create mode 100644 src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachValueWhenNotIgnored.php create mode 100644 src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachKeyWhenIgnored.php create mode 100644 src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachValueWhenIgnored.php diff --git a/src/test/php/PHPMD/Rule/UnusedLocalVariableTest.php b/src/test/php/PHPMD/Rule/UnusedLocalVariableTest.php index e0fb6160f..76dc5f8ce 100644 --- a/src/test/php/PHPMD/Rule/UnusedLocalVariableTest.php +++ b/src/test/php/PHPMD/Rule/UnusedLocalVariableTest.php @@ -70,6 +70,7 @@ class UnusedLocalVariableTest extends AbstractTest public function testRuleAppliesToUnusedLocalVariable() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(1)); $rule->apply($this->getMethod()); } @@ -82,6 +83,7 @@ public function testRuleAppliesToUnusedLocalVariable() public function testInnerFunctionParametersDoNotHideUnusedVariables() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(1)); $rule->apply($this->getFunction()); } @@ -104,6 +106,7 @@ public function testInnerFunctionParametersDoNotHideUnusedVariables() public function testRuleAppliesToLocalVariableWithSameNameAsStaticProperty() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(1)); $rule->apply($this->getMethod()); } @@ -126,6 +129,7 @@ public function testRuleAppliesToLocalVariableWithSameNameAsStaticProperty() public function testRuleAppliesToLocalVariableWithSameNameAsStaticArrayProperty() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(1)); $rule->apply($this->getMethod()); } @@ -149,6 +153,7 @@ public function testRuleAppliesToLocalVariableWithSameNameAsStaticArrayProperty( public function testRuleDoesNotApplyToLocalVariableUsedInCompoundVariable() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -161,6 +166,7 @@ public function testRuleDoesNotApplyToLocalVariableUsedInCompoundVariable() public function testRuleDoesNotApplyToThisVariable() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -173,6 +179,7 @@ public function testRuleDoesNotApplyToThisVariable() public function testRuleDoesNotApplyToStaticProperty() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -185,6 +192,7 @@ public function testRuleDoesNotApplyToStaticProperty() public function testRuleDoesNotApplyToStaticArrayProperty() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -206,6 +214,7 @@ public function testRuleDoesNotApplyToStaticArrayProperty() public function testRuleDoesNotApplyToMethodArgument() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -218,6 +227,7 @@ public function testRuleDoesNotApplyToMethodArgument() public function testRuleDoesNotApplyToStaticObjectProperty() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -230,6 +240,7 @@ public function testRuleDoesNotApplyToStaticObjectProperty() public function testRuleDoesNotApplyToDynamicProperty() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -242,6 +253,7 @@ public function testRuleDoesNotApplyToDynamicProperty() public function testRuleDoesNotApplyToUnusedParameters() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -254,6 +266,7 @@ public function testRuleDoesNotApplyToUnusedParameters() public function testRuleDoesNotApplyToArgcSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -266,6 +279,7 @@ public function testRuleDoesNotApplyToArgcSuperGlobal() public function testRuleDoesNotApplyToArgvSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -278,6 +292,7 @@ public function testRuleDoesNotApplyToArgvSuperGlobal() public function testRuleDoesNotApplyToGlobalsSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -290,6 +305,7 @@ public function testRuleDoesNotApplyToGlobalsSuperGlobal() public function testRuleDoesNotApplyToCookieSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -302,6 +318,7 @@ public function testRuleDoesNotApplyToCookieSuperGlobal() public function testRuleDoesNotApplyToEnvSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -314,6 +331,7 @@ public function testRuleDoesNotApplyToEnvSuperGlobal() public function testRuleDoesNotApplyToFilesSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -326,6 +344,7 @@ public function testRuleDoesNotApplyToFilesSuperGlobal() public function testRuleDoesNotApplyToGetSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -338,6 +357,7 @@ public function testRuleDoesNotApplyToGetSuperGlobal() public function testRuleDoesNotApplyToPostSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -350,6 +370,7 @@ public function testRuleDoesNotApplyToPostSuperGlobal() public function testRuleDoesNotApplyToRequestSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -362,6 +383,7 @@ public function testRuleDoesNotApplyToRequestSuperGlobal() public function testRuleDoesNotApplyToSessionSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -374,6 +396,7 @@ public function testRuleDoesNotApplyToSessionSuperGlobal() public function testRuleDoesNotApplyToServerSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -386,6 +409,7 @@ public function testRuleDoesNotApplyToServerSuperGlobal() public function testRuleDoesNotApplyToHttpRawPostDataSuperGlobal() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -398,6 +422,7 @@ public function testRuleDoesNotApplyToHttpRawPostDataSuperGlobal() public function testRuleDoesNotApplyToUnusedLocalVariableInFunction() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getFunction()); } @@ -410,6 +435,7 @@ public function testRuleDoesNotApplyToUnusedLocalVariableInFunction() public function testRuleDoesNotApplyToUnusedLocalVariableInMethod() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -432,10 +458,66 @@ public function testRuleDoesNotApplyToUnusedLocalVariableInMethod() public function testRuleDoesNotApplyToLocalVariableUsedAsArrayIndex() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } + /** + * testRuleAppliesToUnusedForeachKeyWhenNotIgnored + * + * @return void + */ + public function testRuleAppliesToUnusedForeachKeyWhenNotIgnored() + { + $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); + $rule->setReport($this->getReportMock(1)); + $rule->apply($this->getMethod()); + } + + + /** + * testRuleAppliesToUnusedForeachValueWhenNotIgnored + * + * @return void + */ + public function testRuleAppliesToUnusedForeachValueWhenNotIgnored() + { + $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); + $rule->setReport($this->getReportMock(1)); + $rule->apply($this->getMethod()); + } + + + /** + * testRuleDoesNotApplyToUnusedForeachKeyWhenIgnored + * + * @return void + */ + public function testRuleDoesNotApplyToUnusedForeachKeyWhenIgnored() + { + $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'true'); + $rule->setReport($this->getReportMock(0)); + $rule->apply($this->getMethod()); + } + + + /** + * testRuleDoesNotApplyToUnusedForeachValueWhenIgnored + * + * @return void + */ + public function testRuleDoesNotApplyToUnusedForeachValueWhenIgnored() + { + $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'true'); + $rule->setReport($this->getReportMock(0)); + $rule->apply($this->getMethod()); + } + /** * testRuleDoesNotApplyToLocalVariableUsedAsStringIndex * @@ -454,6 +536,7 @@ public function testRuleDoesNotApplyToLocalVariableUsedAsArrayIndex() public function testRuleDoesNotApplyToLocalVariableUsedAsStringIndex() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -476,6 +559,7 @@ public function testRuleDoesNotApplyToLocalVariableUsedAsStringIndex() public function testRuleDoesNotApplyToCatchStatement() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -497,6 +581,7 @@ public function testRuleDoesNotApplyToCatchStatement() public function testRuleDoesNotApplyToCompactFunction() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -509,6 +594,7 @@ public function testRuleDoesNotApplyToCompactFunction() public function test_compact_function_rule_works_case_insensitive() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -532,6 +618,7 @@ public function test_compact_function_rule_works_case_insensitive() public function testRuleDoesNotApplyToNamespacedCompactFunction() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } @@ -544,6 +631,7 @@ public function testRuleDoesNotApplyToNamespacedCompactFunction() public function test_namespaced_compact_function_rule_works_case_insensitive() { $rule = new UnusedLocalVariable(); + $rule->addProperty('allow-unused-foreach-variables', 'false'); $rule->setReport($this->getReportMock(0)); $rule->apply($this->getMethod()); } diff --git a/src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachKeyWhenNotIgnored.php b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachKeyWhenNotIgnored.php new file mode 100644 index 000000000..40bd9d0c0 --- /dev/null +++ b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachKeyWhenNotIgnored.php @@ -0,0 +1,10 @@ +index as $key => $value) { + self::$string{$value} = 'a'; + } + } +} \ No newline at end of file diff --git a/src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachValueWhenNotIgnored.php b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachValueWhenNotIgnored.php new file mode 100644 index 000000000..cdfbe8e1c --- /dev/null +++ b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleAppliesToUnusedForeachValueWhenNotIgnored.php @@ -0,0 +1,10 @@ +index as $key => $value) { + self::$string{$key} = 'a'; + } + } +} \ No newline at end of file diff --git a/src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachKeyWhenIgnored.php b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachKeyWhenIgnored.php new file mode 100644 index 000000000..68af705f8 --- /dev/null +++ b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachKeyWhenIgnored.php @@ -0,0 +1,10 @@ +index as $key => $value) { + self::$string{$value} = 'a'; + } + } +} \ No newline at end of file diff --git a/src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachValueWhenIgnored.php b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachValueWhenIgnored.php new file mode 100644 index 000000000..b453ae2e8 --- /dev/null +++ b/src/test/resources/files/Rule/UnusedLocalVariable/testRuleDoesNotApplyToUnusedForeachValueWhenIgnored.php @@ -0,0 +1,10 @@ +index as $key => $value) { + self::$string{$key} = 'a'; + } + } +} \ No newline at end of file