Вход Регистрация
Файл: src/vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationTest.php
Строк: 193
<?php

namespace MockeryGenerator;

class 
MockConfigurationTest extends PHPUnit_Framework_TestCase
{
    
/**
     * @test
     */
    
public function blackListedMethodsShouldNotBeInListToBeMocked()
    {
        
$config = new MockConfiguration(array("MockeryGenerator\TestSubject"), array("foo"));

        
$methods = $config->getMethodsToMock();
        
$this->assertEquals(1, count($methods));
        
$this->assertEquals("bar", $methods[0]->getName());
    }

    
/**
     * @test
     */
    
public function blackListsAreCaseInsensitive()
    {
        
$config = new MockConfiguration(array("MockeryGenerator\TestSubject"), array("FOO"));

        
$methods = $config->getMethodsToMock();
        
$this->assertEquals(1, count($methods));
        
$this->assertEquals("bar", $methods[0]->getName());
    }


    
/**
     * @test
     */
    
public function onlyWhiteListedMethodsShouldBeInListToBeMocked()
    {
        
$config = new MockConfiguration(array("MockeryGenerator\TestSubject"), array(), array('foo'));

        
$methods = $config->getMethodsToMock();
        
$this->assertEquals(1, count($methods));
        
$this->assertEquals("foo", $methods[0]->getName());
    }

    
/**
     * @test
     */
    
public function whitelistOverRulesBlackList()
    {
        
$config = new MockConfiguration(array("MockeryGenerator\TestSubject"), array("foo"), array("foo"));

        
$methods = $config->getMethodsToMock();
        
$this->assertEquals(1, count($methods));
        
$this->assertEquals("foo", $methods[0]->getName());
    }

    
/**
     * @test
     */
    
public function whiteListsAreCaseInsensitive()
    {
        
$config = new MockConfiguration(array("MockeryGenerator\TestSubject"), array(), array("FOO"));

        
$methods = $config->getMethodsToMock();
        
$this->assertEquals(1, count($methods));
        
$this->assertEquals("foo", $methods[0]->getName());
    }

    
/**
     * @test
     */
    
public function finalMethodsAreExcluded()
    {
        
$config = new MockConfiguration(array("MockeryGenerator\ClassWithFinalMethod"));

        
$methods = $config->getMethodsToMock();
        
$this->assertEquals(1, count($methods));
        
$this->assertEquals("bar", $methods[0]->getName());
    }

    
/**
     * @test
     */
    
public function shouldIncludeMethodsFromAllTargets()
    {
        
$config = new MockConfiguration(array("Mockery\Generator\TestInterface", "Mockery\Generator\TestInterface2"));
        
$methods = $config->getMethodsToMock();
        
$this->assertEquals(2, count($methods));
    }

    
/**
     * @test
     * @expectedException MockeryException
     */
    
public function shouldThrowIfTargetClassIsFinal()
    {
        
$config = new MockConfiguration(array("Mockery\Generator\TestFinal"));
        
$config->getTargetClass();
    }

    
/**
     * @test
     */
    
public function shouldTargetIteratorAggregateIfTryingToMockTraversable()
    {
        
$config = new MockConfiguration(array("\Traversable"));

        
$interfaces = $config->getTargetInterfaces();
        
$this->assertEquals(1, count($interfaces));
        
$first = array_shift($interfaces);
        
$this->assertEquals("IteratorAggregate", $first->getName());
    }

    
/**
     * @test
     */
    
public function shouldTargetIteratorAggregateIfTraversableInTargetsTree()
    {
        
$config = new MockConfiguration(array("MockeryGeneratorTestTraversableInterface"));

        
$interfaces = $config->getTargetInterfaces();
        
$this->assertEquals(2, count($interfaces));
        
$this->assertEquals("IteratorAggregate", $interfaces[0]->getName());
        
$this->assertEquals("MockeryGeneratorTestTraversableInterface", $interfaces[1]->getName());
    }

    
/**
     * @test
     */
    
public function shouldBringIteratorToHeadOfTargetListIfTraversablePresent()
    {
        
$config = new MockConfiguration(array("MockeryGeneratorTestTraversableInterface2"));

        
$interfaces = $config->getTargetInterfaces();
        
$this->assertEquals(2, count($interfaces));
        
$this->assertEquals("Iterator", $interfaces[0]->getName());
        
$this->assertEquals("MockeryGeneratorTestTraversableInterface2", $interfaces[1]->getName());
    }

    
/**
     * @test
     */
    
public function shouldBringIteratorAggregateToHeadOfTargetListIfTraversablePresent()
    {
        
$config = new MockConfiguration(array("MockeryGeneratorTestTraversableInterface3"));

        
$interfaces = $config->getTargetInterfaces();
        
$this->assertEquals(2, count($interfaces));
        
$this->assertEquals("IteratorAggregate", $interfaces[0]->getName());
        
$this->assertEquals("MockeryGeneratorTestTraversableInterface3", $interfaces[1]->getName());
    }
}

interface 
TestTraversableInterface extends Traversable
{
}
interface 
TestTraversableInterface2 extends Traversable, Iterator
{
}
interface 
TestTraversableInterface3 extends Traversable, IteratorAggregate
{
}

final class 
TestFinal
{
}

interface 
TestInterface
{
    public function 
foo();
}

interface 
TestInterface2
{
    public function 
bar();
}

class 
TestSubject
{
    public function 
foo()
    {
    }

    public function 
bar()
    {
    }
}

class 
ClassWithFinalMethod
{
    final public function 
foo()
    {
    }

    public function 
bar()
    {
    }
}
Онлайн: 2
Реклама