<?php 
//-------------------------------------------------------------------------------------------------------------------------------- 
//  
//    From console, run: $> php square.php 
//    to test all <spec-name>.specs.php files on your designated 'specs' folder (see: square.php) 
// 
//    To test a single spec: $>php square.php <my-spec> 
//    to test <my-spec>.specs.php 
// 
//-------------------------------------------------------------------------------------------------------------------------------- 
/* 
GIVEN: 
 
class Bowling {     
    public $score = 0; 
    public $strike = FALSE; 
     
    public function hit($pins) { 
        if ($pins == 10) { 
            $this->strike = TRUE; 
            $this->score = $pins * 2; 
        }  
        if ($pins) { 
            $this->score = $pins; 
        } 
    }  
} 
*/ 
include('../square_spec.php'); 
 
use SquareSpec\Spec; 
 
Spec::describe('Bowling')->spec( 
    Spec::before( 
        Spec::let('bowling')->be(new Bowling) 
    ), 
    Spec::describe('#score')->spec( 
        Spec::it("returns 0 for all gutter game")->spec(function($bowling) { 
            for ($i = 0; $i < 20; $i++) { 
                $bowling->hit(0); 
            } 
            $bowling->score->should->equals(0); 
        }) 
    ), 
    Spec::describe('#strike')->spec( 
        Spec::it("returns 'strike' if all 10 pins are down")->spec(function($bowling) { 
            $bowling->hit(10); 
            $bowling->strike->should->be(); 
        }) 
    ) 
)->test(); 
?>
 
 |