Skip to content

Create CLI_Runner class #14

@mehulkaklotar

Description

@mehulkaklotar

Description

The CLI runner class will implement the Abstract_Check_Runner and its methods to use Checks class to run checks for a plugin provided. CLI command class will invoke or use the instance of the CLI Runner class to use the methods of the Checks class to run the checks.

This issue is dependant on:

Acceptance Criteria

  • Class CLI_Runner should be created and exists at includes/Checker
  • The CLI_Runner class extends the Abstract_Check_Runner
  • The class contains a is_plugin_check() method.
    • The is_plugin_check() method accepts no parameters.
    • The is_plugin_check() method will use the global $_REQUEST['argv'] array, and any other relevant data, to determine if the current request is for the Plugin Checker via the CLI by:
    • If the above conditions are correct, the method returns true
    • If the above conditions do not match, the method returns false.
  • The class contains a protected setup_checks() method.
    • The setup_checks() method accepts no parameters.
    • The setup_checks() method will pass the plugin name from the $_REQUEST['argv'] to the Checks constructor and assign the object to the $checks property.
    • The setup_checks() method will check the $_REQUEST['argv'] array of slugs for the checks to run. If this does not exist all checks will be run from the Checks get_checks() method.
    • The Check instances retrieved from the Checks class instance get_checks() and assigned to the $checks_to_run property.
  • The class contains a run() method.
    • The run() method accepts no parameters.
    • The run() method will call the Checks class run_checks() method passing the $checks_to_run property. ($this->checks->run_checks( $this->checks_to_run ))
    • The run() method will return the instance of Check_Results returned by the run_checks() method.

Test Coverage

  • Test is_plugin_check() returns true when the $_REQUEST['argv'] array contains the expected values for a Plugin Checker CLI request.
  • Test is_plugin_check() returns false when the $_REQUEST['argv'] array does not contains the expected values for a Plugin Checker CLI request.
  • The requires_universal_preperations returns false when no Checks passed implements the Runtime_Check interface
  • The requires_universal_preperations returns true when one or more Checks passed implements the Runtime_Check interface
  • Test prepare() method returns null when the checks to run does not contain a Check that implements the Runtime_Check interface.
  • Test prepare() method returns a callable cleanup function when the checks to run contains a Check that implements the Runtime_Check interface.
  • Test run() method returns an instance of Check_Results.
  • Test Check_Results returned by run() contains no errors/warnings when running the test Empty_Check
  • Test Check_Results returned by run() contains errors when running the test Error_Check

Metadata

Metadata

Assignees

Labels

InfrastructureIssues for the overall plugin infrastructure[Type] EnhancementA suggestion for improvement of an existing feature

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions