39 lines
		
	
	
		
			838 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			838 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| 	class TestRunner {
 | |
| 		
 | |
| 		protected $tests;
 | |
| 		protected $name;
 | |
| 		protected $listeners;
 | |
| 		
 | |
| 		public function __construct($name, array $tests, array $listeners = array()) {
 | |
| 			$this->name      = $name;
 | |
| 			$this->tests     = $tests;
 | |
| 			$this->listeners = $listeners;
 | |
| 		}
 | |
| 		
 | |
| 		public function addTest(Testable $test) {
 | |
| 			$this->tests[] = $test;
 | |
| 			return $this;
 | |
| 		}
 | |
| 		
 | |
| 		public function addListener(TestListener $listener) {
 | |
| 			$this->listeners[] = $listener;
 | |
| 			return $this;
 | |
| 		}
 | |
| 		
 | |
| 		public function run() {
 | |
| 			foreach ($this->tests as $test) {
 | |
| 				if ($test instanceof Testable) {
 | |
| 					$test->run($this->listeners);
 | |
| 				} else {
 | |
| 					foreach ($this->listeners as $listener) {
 | |
| 						$listener->onFrameworkWarning('Unable to run test because it is not an instanceof Testable (' . gettype($test) . ')');
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		
 | |
| 	}
 | |
| 
 | |
| ?>
 |