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
Description
The CLI runner class will implement the
Abstract_Check_Runnerand 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
CLI_Runnershould be created and exists atincludes/CheckerCLI_Runnerclass extends theAbstract_Check_Runneris_plugin_check()method.is_plugin_check()method accepts no parameters.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:$_REQUEST['argv']contains thewp plugin checkcommand (see Create the WP-CLI subcommand wp plugin check #30)truefalse.setup_checks()method.setup_checks()method accepts no parameters.setup_checks()method will pass the plugin name from the$_REQUEST['argv']to theChecksconstructor and assign the object to the$checksproperty.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 theChecksget_checks()method.Checksclass instanceget_checks()and assigned to the$checks_to_runproperty.run()method.run()method accepts no parameters.run()method will call theChecksclassrun_checks()method passing the$checks_to_runproperty. ($this->checks->run_checks( $this->checks_to_run ))run()method will return the instance ofCheck_Resultsreturned by therun_checks()method.Test Coverage
is_plugin_check()returnstruewhen the$_REQUEST['argv']array contains the expected values for a Plugin Checker CLI request.is_plugin_check()returnsfalsewhen the$_REQUEST['argv']array does not contains the expected values for a Plugin Checker CLI request.requires_universal_preperationsreturns false when no Checks passed implements theRuntime_Checkinterfacerequires_universal_preperationsreturns true when one or more Checks passed implements theRuntime_Checkinterfaceprepare()method returnsnullwhen the checks to run does not contain aCheckthat implements theRuntime_Checkinterface.prepare()method returns acallablecleanup function when the checks to run contains aCheckthat implements theRuntime_Checkinterface.run()method returns an instance ofCheck_Results.Check_Resultsreturned byrun()contains no errors/warnings when running the testEmpty_CheckCheck_Resultsreturned byrun()contains errors when running the testError_Check