Вход Регистрация
Файл: gapps/vendor/sebastian/recursion-context/tests/ContextTest.php
Строк: 191
<?php
/*
 * This file is part of the Recursion Context package.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SebastianBergmannRecursionContext;

use 
PHPUnit_Framework_TestCase;

/**
 * @covers SebastianBergmannRecursionContextContext
 */
class ContextTest extends PHPUnit_Framework_TestCase
{
    
/**
     * @var SebastianBergmannRecursionContextContext
     */
    
private $context;

    protected function 
setUp()
    {
        
$this->context = new Context();
    }

    public function 
failsProvider()
    {
        return array(
            array(
true),
            array(
false),
            array(
null),
            array(
'string'),
            array(
1),
            array(
1.5),
            array(
fopen('php://memory''r'))
        );
    }

    public function 
valuesProvider()
    {
        
$obj2      = new stdClass();
        
$obj2->foo 'bar';

        
$obj3 = (object) array(1,2,"Testrn",4,5,6,7,8);

        
$obj = new stdClass();
        
//@codingStandardsIgnoreStart
        
$obj->null null;
        
//@codingStandardsIgnoreEnd
        
$obj->boolean     true;
        
$obj->integer     1;
        
$obj->double      1.2;
        
$obj->string      '1';
        
$obj->text        "thisnisnanverynverynverynverynverynveryrlongnrtext";
        
$obj->object      $obj2;
        
$obj->objectagain $obj2;
        
$obj->array       = array('foo' => 'bar');
        
$obj->array2      = array(1,2,3,4,5,6);
        
$obj->array3      = array($obj$obj2$obj3);
        
$obj->self        $obj;

        
$storage = new SplObjectStorage();
        
$storage->attach($obj2);
        
$storage->foo $obj2;

        return array(
            array(
$objspl_object_hash($obj)),
            array(
$obj2spl_object_hash($obj2)),
            array(
$obj3spl_object_hash($obj3)),
            array(
$storagespl_object_hash($storage)),
            array(
$obj->array0),
            array(
$obj->array20),
            array(
$obj->array30)
        );
    }

    
/**
     * @covers       SebastianBergmannRecursionContextContext::add
     * @uses         SebastianBergmannRecursionContextInvalidArgumentException
     * @dataProvider failsProvider
     */
    
public function testAddFails($value)
    {
        
$this->setExpectedException(
          
'SebastianBergmann\RecursionContext\Exception',
          
'Only arrays and objects are supported'
        
);
        
$this->context->add($value);
    }

    
/**
     * @covers       SebastianBergmannRecursionContextContext::contains
     * @uses         SebastianBergmannRecursionContextInvalidArgumentException
     * @dataProvider failsProvider
     */
    
public function testContainsFails($value)
    {
        
$this->setExpectedException(
          
'SebastianBergmann\RecursionContext\Exception',
          
'Only arrays and objects are supported'
        
);
        
$this->context->contains($value);
    }

    
/**
     * @covers       SebastianBergmannRecursionContextContext::add
     * @dataProvider valuesProvider
     */
    
public function testAdd($value$key)
    {
        
$this->assertEquals($key$this->context->add($value));

        
// Test we get the same key on subsequent adds
        
$this->assertEquals($key$this->context->add($value));
    }

    
/**
     * @covers       SebastianBergmannRecursionContextContext::contains
     * @uses         SebastianBergmannRecursionContextContext::add
     * @depends      testAdd
     * @dataProvider valuesProvider
     */
    
public function testContainsFound($value$key)
    {
        
$this->context->add($value);
        
$this->assertEquals($key$this->context->contains($value));

        
// Test we get the same key on subsequent calls
        
$this->assertEquals($key$this->context->contains($value));
    }

    
/**
     * @covers       SebastianBergmannRecursionContextContext::contains
     * @dataProvider valuesProvider
     */
    
public function testContainsNotFound($value)
    {
        
$this->assertFalse($this->context->contains($value));
    }
}
Онлайн: 0
Реклама