howardjones/network-weathermap

View on GitHub
lib/Weathermap/Tests/MapManagerTest.php

Summary

Maintainability
C
1 day
Test Coverage

File MapManagerTest.php has 397 lines of code (exceeds 250 allowed). Consider refactoring.
Open

<?php

namespace Weathermap\Tests;

require_once dirname(__FILE__) . '/../../all.php';
Severity: Minor
Found in lib/Weathermap/Tests/MapManagerTest.php - About 5 hrs to fix

    MapManagerTest has 30 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class MapManagerTest extends \PHPUnit_Extensions_Database_TestCase
    {
    
        // only instantiate pdo once for test clean-up/fixture load
        static private $pdo = null;
    Severity: Minor
    Found in lib/Weathermap/Tests/MapManagerTest.php - About 3 hrs to fix

      Method testMapSettings has 34 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          public function testMapSettings()
          {
      
              $settings = $this->manager->getMapSettings(0);
              $this->assertEquals(1, count($settings));
      Severity: Minor
      Found in lib/Weathermap/Tests/MapManagerTest.php - About 1 hr to fix

        Class "MapManagerTest" has 30 methods, which is greater than 20 authorized. Split it into smaller classes.
        Open

        class MapManagerTest extends \PHPUnit_Extensions_Database_TestCase

        A class that grows too much tends to aggregate too many responsibilities and inevitably becomes harder to understand and therefore to maintain. Above a specific threshold, it is strongly advised to refactor the class into smaller ones which focus on well defined topics.

        Define a constant instead of duplicating this literal "userid" 4 times.
        Open

                $this->assertTrue($this->objectArrayIncludes($users, "userid", $guestUser));

        Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

        On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

        Noncompliant Code Example

        With the default threshold of 3:

        function run() {
          prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
          execute('action1');
          release('action1');
        }
        

        Compliant Solution

        ACTION_1 = 'action1';
        
        function run() {
          prepare(ACTION_1);
          execute(ACTION_1);
          release(ACTION_1);
        }
        

        Exceptions

        To prevent generating some false-positives, literals having less than 5 characters are excluded.

        Define a constant instead of duplicating this literal "trout" 4 times.
        Open

                $this->manager->saveMapSetting(1, "fish", "trout");

        Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

        On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

        Noncompliant Code Example

        With the default threshold of 3:

        function run() {
          prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
          execute('action1');
          release('action1');
        }
        

        Compliant Solution

        ACTION_1 = 'action1';
        
        function run() {
          prepare(ACTION_1);
          execute(ACTION_1);
          release(ACTION_1);
        }
        

        Exceptions

        To prevent generating some false-positives, literals having less than 5 characters are excluded.

        Define a constant instead of duplicating this literal "settings" 6 times.
        Open

                $this->assertEquals(40, $this->getConnection()->getRowCount('settings'), "Pre-Condition");

        Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

        On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

        Noncompliant Code Example

        With the default threshold of 3:

        function run() {
          prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
          execute('action1');
          release('action1');
        }
        

        Compliant Solution

        ACTION_1 = 'action1';
        
        function run() {
          prepare(ACTION_1);
          execute(ACTION_1);
          release(ACTION_1);
        }
        

        Exceptions

        To prevent generating some false-positives, literals having less than 5 characters are excluded.

        Define a constant instead of duplicating this literal "weathermap_maps" 3 times.
        Open

                $this->assertEquals(6, $this->getConnection()->getRowCount('weathermap_maps'), "Pre-Condition");

        Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

        On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

        Noncompliant Code Example

        With the default threshold of 3:

        function run() {
          prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
          execute('action1');
          release('action1');
        }
        

        Compliant Solution

        ACTION_1 = 'action1';
        
        function run() {
          prepare(ACTION_1);
          execute(ACTION_1);
          release(ACTION_1);
        }
        

        Exceptions

        To prevent generating some false-positives, literals having less than 5 characters are excluded.

        Define a constant instead of duplicating this literal "Pre-Condition" 5 times.
        Open

                $this->assertEquals(6, $this->getConnection()->getRowCount('weathermap_maps'), "Pre-Condition");

        Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

        On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

        Noncompliant Code Example

        With the default threshold of 3:

        function run() {
          prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
          execute('action1');
          release('action1');
        }
        

        Compliant Solution

        ACTION_1 = 'action1';
        
        function run() {
          prepare(ACTION_1);
          execute(ACTION_1);
          release(ACTION_1);
        }
        

        Exceptions

        To prevent generating some false-positives, literals having less than 5 characters are excluded.

        Remove this commented out code.
        Open

                # print_r($settings);

        Programmers should not comment out code as it bloats programs and reduces readability.

        Unused code should be deleted and can be retrieved from source control history if required.

        See

        • MISRA C:2004, 2.4 - Sections of code should not be "commented out".
        • MISRA C++:2008, 2-7-2 - Sections of code shall not be "commented out" using C-style comments.
        • MISRA C++:2008, 2-7-3 - Sections of code should not be "commented out" using C++ comments.
        • MISRA C:2012, Dir. 4.4 - Sections of code should not be "commented out"

        Define a constant instead of duplicating this literal "weathermap_groups" 5 times.
        Open

                $this->assertEquals(3, $this->getConnection()->getRowCount('weathermap_groups'), "Pre-Condition");

        Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

        On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

        Noncompliant Code Example

        With the default threshold of 3:

        function run() {
          prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
          execute('action1');
          release('action1');
        }
        

        Compliant Solution

        ACTION_1 = 'action1';
        
        function run() {
          prepare(ACTION_1);
          execute(ACTION_1);
          release(ACTION_1);
        }
        

        Exceptions

        To prevent generating some false-positives, literals having less than 5 characters are excluded.

        There are no issues that match your filters.

        Category
        Status