Вход Регистрация
Файл: gapps/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php
Строк: 140
<?php

namespace specProphecyPromise;

use 
PhpSpecExceptionExampleSkippingException;
use 
PhpSpecObjectBehavior;
use 
ProphecyProphecyMethodProphecy;
use 
ProphecyProphecyObjectProphecy;

class 
ThrowPromiseSpec extends ObjectBehavior
{
    function 
let()
    {
        
$this->beConstructedWith('RuntimeException');
    }

    function 
it_is_promise()
    {
        
$this->shouldBeAnInstanceOf('ProphecyPromisePromiseInterface');
    }

    function 
it_instantiates_and_throws_exception_from_provided_classname(ObjectProphecy $objectMethodProphecy $method)
    {
        
$this->beConstructedWith('InvalidArgumentException');

        
$this->shouldThrow('InvalidArgumentException')
            ->
duringExecute(array(), $object$method);
    }

    function 
it_instantiates_exceptions_with_required_arguments(ObjectProphecy $objectMethodProphecy $method)
    {
        
$this->beConstructedWith('specProphecyPromiseRequiredArgumentException');

        
$this->shouldThrow('specProphecyPromiseRequiredArgumentException')
            ->
duringExecute(array(), $object$method);
    }

    function 
it_throws_provided_exception(ObjectProphecy $objectMethodProphecy $method)
    {
        
$this->beConstructedWith($exc = new RuntimeException('Some exception'));

        
$this->shouldThrow($exc)->duringExecute(array(), $object$method);
    }

    function 
it_throws_error_instances(ObjectProphecy $objectMethodProphecy $method)
    {
        if (!
class_exists('Error')) {
            throw new 
SkippingException('The class Error, introduced in PHP 7, does not exist');
        }

        
$this->beConstructedWith($exc = new Error('Error exception'));

        
$this->shouldThrow($exc)->duringExecute(array(), $object$method);
    }

    function 
it_throws_errors_by_class_name()
    {
        if (!
class_exists('Error')) {
            throw new 
SkippingException('The class Error, introduced in PHP 7, does not exist');
        }

        
$this->beConstructedWith('Error');

        
$this->shouldNotThrow('ProphecyExceptionInvalidArgumentException')->duringInstantiation();
    }

    function 
it_does_not_throw_something_that_is_not_throwable_by_class_name()
    {
        
$this->beConstructedWith('stdClass');

        
$this->shouldThrow('ProphecyExceptionInvalidArgumentException')->duringInstantiation();
    }

    function 
it_does_not_throw_something_that_is_not_throwable_by_instance()
    {
        
$this->beConstructedWith(new stdClass());

        
$this->shouldThrow('ProphecyExceptionInvalidArgumentException')->duringInstantiation();
    }

    function 
it_throws_an_exception_by_class_name()
    {
        
$this->beConstructedWith('Exception');

        
$this->shouldNotThrow('ProphecyExceptionInvalidArgumentException')->duringInstantiation();
    }
}

class 
RequiredArgumentException extends Exception
{
    final public function 
__construct($message$code) {}
}
Онлайн: 0
Реклама