| Server IP : 127.0.1.1 / Your IP : 216.73.216.152 Web Server : Apache/2.4.52 (Ubuntu) System : Linux bahcrestlinepropertiesllc 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/bahcrestline/core/vendor/mockery/mockery/tests/Mockery/ |
Upload File : |
<?php
/**
* Mockery
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://github.com/padraic/mockery/master/LICENSE
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to padraic@php.net so we can send you a copy immediately.
*
* @category Mockery
* @package Mockery
* @subpackage UnitTests
* @copyright Copyright (c) 2010 Pádraic Brady (http://blog.astrumfutura.com)
* @license http://github.com/padraic/mockery/blob/master/LICENSE New BSD License
*/
namespace test\Mockery;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Mockery\Generator\Method;
use test\Mockery\Fixtures\MethodWithNullableReturnType;
/**
* @requires PHP 7.1.0RC3
*/
class MockingNullableMethodsTest extends MockeryTestCase
{
/**
* @var \Mockery\Container
*/
private $container;
protected function mockeryTestSetUp()
{
parent::mockeryTestSetUp();
require_once __DIR__."/Fixtures/MethodWithNullableReturnType.php";
}
/**
* @test
*/
public function itShouldAllowNonNullableTypeToBeSet()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nonNullablePrimitive')->andReturn('a string');
$mock->nonNullablePrimitive();
}
/**
* @test
*/
public function itShouldNotAllowNonNullToBeNull()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nonNullablePrimitive')->andReturn(null);
$this->expectException(\TypeError::class);
$mock->nonNullablePrimitive();
}
/**
* @test
*/
public function itShouldAllowPrimitiveNullableToBeNull()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nullablePrimitive')->andReturn(null);
$mock->nullablePrimitive();
}
/**
* @test
*/
public function itShouldAllowPrimitiveNullableToBeSet()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nullablePrimitive')->andReturn('a string');
$mock->nullablePrimitive();
}
/**
* @test
*/
public function itShouldAllowSelfToBeSet()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nonNullableSelf')->andReturn(new MethodWithNullableReturnType());
$mock->nonNullableSelf();
}
/**
* @test
*/
public function itShouldNotAllowSelfToBeNull()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nonNullableSelf')->andReturn(null);
$this->expectException(\TypeError::class);
$mock->nonNullableSelf();
}
/**
* @test
*/
public function itShouldAllowNullableSelfToBeSet()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nullableSelf')->andReturn(new MethodWithNullableReturnType());
$mock->nullableSelf();
}
/**
* @test
*/
public function itShouldAllowNullableSelfToBeNull()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nullableSelf')->andReturn(null);
$mock->nullableSelf();
}
/**
* @test
*/
public function itShouldAllowClassToBeSet()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nonNullableClass')->andReturn(new MethodWithNullableReturnType());
$mock->nonNullableClass();
}
/**
* @test
*/
public function itShouldNotAllowClassToBeNull()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nonNullableClass')->andReturn(null);
$this->expectException(\TypeError::class);
$mock->nonNullableClass();
}
/**
* @test
*/
public function itShouldAllowNullalbeClassToBeSet()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nullableClass')->andReturn(new MethodWithNullableReturnType());
$mock->nullableClass();
}
/**
* @test
*/
public function itShouldAllowNullableClassToBeNull()
{
$mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType");
$mock->shouldReceive('nullableClass')->andReturn(null);
$mock->nullableClass();
}
/** @test */
public function it_allows_returning_null_for_nullable_object_return_types()
{
$double= \Mockery::mock(MethodWithNullableReturnType::class);
$double->shouldReceive("nullableClass")->andReturnNull();
$this->assertNull($double->nullableClass());
}
/** @test */
public function it_allows_returning_null_for_nullable_string_return_types()
{
$double= \Mockery::mock(MethodWithNullableReturnType::class);
$double->shouldReceive("nullableString")->andReturnNull();
$this->assertNull($double->nullableString());
}
/** @test */
public function it_allows_returning_null_for_nullable_int_return_types()
{
$double= \Mockery::mock(MethodWithNullableReturnType::class);
$double->shouldReceive("nullableInt")->andReturnNull();
$this->assertNull($double->nullableInt());
}
/** @test */
public function it_returns_null_on_calls_to_ignored_methods_of_spies_if_return_type_is_nullable()
{
$double = \Mockery::spy(MethodWithNullableReturnType::class);
$this->assertNull($double->nullableClass());
}
}