| 
<?php/**
 * @package SquareSpec
 * @author Benjie Velarde
 * @copyright (c) 2012, Benjie Velarde [email protected]
 * @lincense http://opensource.org/licenses/PHP-3.0
 */
 namespace SquareSpec;
 /**
 * Mostly contains the wrapper functions for other Spec classes
 */
 /**
 * Wraps a spec description
 *
 * @param string $desc,... List of text descriptions
 * @return SpecDescription
 */
 function describe() {
 $args = func_get_args();
 $desc = implode('>', $args);
 return new SpecDescription($desc);
 }
 /**
 * Wraps a spec context
 *
 * @param string $context Context description
 * @return SpecContext
 */
 function it($context) { return new SpecContext($context); }
 /**
 * For setting up the spec subjects
 *
 * @param SpecVar,... subject variables
 * @return array
 */
 function before() {
 $args = func_get_args();
 $subjects = array();
 foreach ($args as $arg) {
 if ($arg instanceof SpecVar) {
 $subjects[$arg->name] = $arg->value;
 }
 }
 return $subjects;
 }
 /**
 * Wrap a spec double
 *
 * @param mixed $obj The mocked object
 * @return SpecDouble
 */
 function double($obj) { return new SpecDouble($obj); }
 /**
 * Wrap a spec subject
 *
 * @param mixed $obj The test subject
 * @return SpecSubject
 */
 function expect($obj) {
 $obj = ($obj instanceof SpecSubject) ? $obj->getSubject() : $obj;
 return new SpecSubject($obj);
 }
 /**
 * Wrap a variable as SpecVar
 *
 * @param string $var The variable name
 * @return SpecVar
 */
 function let($var) { return new SpecVar($var); }
 ?>
 |