<?php
abstract class Reporter
{
// 0 == no output
// 1 == brief output (students?)
// 2 == verbose output (marking)
private $verbosity = 0;
const STATUS_PASS = 'PASSED';
const STATUS_SKIPPED = 'SKIPPED';
const STATUS_INCOMPLETE = 'INCOMPLETE';
const STATUS_FAILURE = 'FAILED';
const STATUS_ERROR = 'ERROR';
const STATUS_WARNING = 'WARNING';
const STATUS_NOTE = 'NOTE';
const STATUS_TEST = 'TEST';
function __construct( $verbosity )
{
$this->verbosity = $verbosity;
}
public static function pluralise( $count, $oneText, $manyText )
{
return ( abs( $count ) !== 1 ) ? $manyText : $oneText;
}
public function setVerbosity( $newVerbosity )
{
$this->verbosity = $newVerbosity;
}
public function getVerbosity()
{
return $this->verbosity;
}
/**
* $reportText is one of: PASSED, FAILED, ERROR, INCOMPLETE, SKIPPED, WARNING, NOTE, MISC, ...?
* $reportText is a printf-style string (although we actually use vprintf because of the array)
* $printfArguments is an array of arguments to $reportText
*/
public function report( $statusText, $reportText, $printfArguments = null )
{
if ( $this->verbosity ) vprintf( $statusText . $reportText . "\n", $printfArguments );
}
abstract public function hr();
}
?>