<?php
namespace Kahlan;
use Kahlan\Box\Box;
use Kahlan\Box\BoxException;
function beforeAll($closure)
{
return Suite::current()->beforeAll($closure);
}
function afterAll($closure)
{
return Suite::current()->afterAll($closure);
}
function beforeEach($closure)
{
return Suite::current()->beforeEach($closure);
}
function afterEach($closure)
{
return Suite::current()->afterEach($closure);
}
function describe($message, $closure, $timeout = null, $type = 'normal')
{
if (!Suite::current()) {
$suite = box('kahlan')->get('suite.global');
return $suite->root()->describe($message, $closure, $timeout, $type);
}
return Suite::current()->describe($message, $closure, $timeout, $type);
}
function context($message, $closure, $timeout = null, $type = 'normal')
{
return Suite::current()->context($message, $closure, $timeout, $type);
}
function given($name, $value)
{
return Suite::current()->given($name, $value);
}
function it($message, $closure = null, $timeout = null, $type = 'normal')
{
return Suite::current()->it($message, $closure, $timeout, $type);
}
function fdescribe($message, $closure, $timeout = null)
{
return describe($message, $closure, $timeout, 'focus');
}
function fcontext($message, $closure, $timeout = null)
{
return context($message, $closure, $timeout, 'focus');
}
function fit($message, $closure = null, $timeout = null)
{
return it($message, $closure, $timeout, 'focus');
}
function xdescribe($message, $closure, $timeout = null)
{
return describe($message, $closure, $timeout, 'exclude');
}
function xcontext($message, $closure, $timeout = null)
{
return context($message, $closure, $timeout, 'exclude');
}
function xit($message, $closure = null, $timeout = null)
{
return it($message, $closure, $timeout, 'exclude');
}
function waitsFor($actual, $timeout = null)
{
return Suite::current()->waitsFor($actual, $timeout);
}
function skipIf($condition)
{
$current = Suite::current();
$current->skipIf($condition);
}
/**
* @param $actual
*
* @return Expectation
*/
function expect($actual)
{
return Suite::current()->expect($actual);
}
/**
* @param $actual
*
* @return Allow
*/
function allow($actual)
{
return new Allow($actual);
}
function box($name = '', $box = null)
{
static $boxes = [];
if (func_num_args() === 1) {
if ($name === false) {
$boxes = [];
return;
}
if (is_object($name)) {
return $boxes[''] = $name;
}
if (isset($boxes[$name])) {
return $boxes[$name];
}
throw new BoxException("Unexisting box `'{$name}'`.");
}
if (func_num_args() === 2) {
if ($box === false) {
unset($boxes[$name]);
return;
}
return $boxes[$name] = $box;
}
if (!isset($boxes[''])) {
$boxes[''] = new Box();
}
return $boxes[''];
}
|