/home/techb158/ileadtechnology.com/vendor/sebastian/type/tests/unit
NameSizeModeActions
CallableTypeTest.php41350644editdlrm
GenericObjectTypeTest.php21450644editdlrm
IterableTypeTest.php24460644editdlrm
NullTypeTest.php17150644editdlrm
ObjectTypeTest.php40240644editdlrm
SimpleTypeTest.php50160644editdlrm
TypeNameTest.php21480644editdlrm
TypeTest.php40490644editdlrm
UnknownTypeTest.php14220644editdlrm
VoidTypeTest.php16850644editdlrm
Edit: /home/techb158/ileadtechnology.com/vendor/sebastian/type/tests/unit/CallableTypeTest.php (4135B)
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\Type; use PHPUnit\Framework\TestCase; use SebastianBergmann\Type\TestFixture\ClassWithCallbackMethods; use SebastianBergmann\Type\TestFixture\ClassWithInvokeMethod; /** * @covers \SebastianBergmann\Type\CallableType * * @uses \SebastianBergmann\Type\Type * @uses \SebastianBergmann\Type\ObjectType * @uses \SebastianBergmann\Type\SimpleType * @uses \SebastianBergmann\Type\TypeName */ final class CallableTypeTest extends TestCase { /** * @var CallableType */ private $type; protected function setUp(): void { $this->type = new CallableType(false); } public function testMayDisallowNull(): void { $this->assertFalse($this->type->allowsNull()); } public function testCanGenerateReturnTypeDeclaration(): void { $this->assertEquals(': callable', $this->type->getReturnTypeDeclaration()); } public function testMayAllowNull(): void { $type = new CallableType(true); $this->assertTrue($type->allowsNull()); } public function testCanGenerateNullableReturnTypeDeclaration(): void { $type = new CallableType(true); $this->assertEquals(': ?callable', $type->getReturnTypeDeclaration()); } public function testNullCanBeAssignedToNullableCallable(): void { $type = new CallableType(true); $this->assertTrue($type->isAssignable(new NullType)); } public function testCallableCanBeAssignedToCallable(): void { $this->assertTrue($this->type->isAssignable(new CallableType(false))); } public function testClosureCanBeAssignedToCallable(): void { $this->assertTrue( $this->type->isAssignable( new ObjectType( TypeName::fromQualifiedName(\Closure::class), false ) ) ); } public function testInvokableCanBeAssignedToCallable(): void { $this->assertTrue( $this->type->isAssignable( new ObjectType( TypeName::fromQualifiedName(ClassWithInvokeMethod::class), false ) ) ); } public function testStringWithFunctionNameCanBeAssignedToCallable(): void { $this->assertTrue( $this->type->isAssignable( Type::fromValue('SebastianBergmann\Type\TestFixture\callback_function', false) ) ); } public function testStringWithClassNameAndStaticMethodNameCanBeAssignedToCallable(): void { $this->assertTrue( $this->type->isAssignable( Type::fromValue(ClassWithCallbackMethods::class . '::staticCallback', false) ) ); } public function testArrayWithClassNameAndStaticMethodNameCanBeAssignedToCallable(): void { $this->assertTrue( $this->type->isAssignable( Type::fromValue([ClassWithCallbackMethods::class, 'staticCallback'], false) ) ); } public function testArrayWithClassNameAndInstanceMethodNameCanBeAssignedToCallable(): void { $this->assertTrue( $this->type->isAssignable( Type::fromValue([new ClassWithCallbackMethods, 'nonStaticCallback'], false) ) ); } public function testSomethingThatIsNotCallableCannotBeAssignedToCallable(): void { $this->assertFalse( $this->type->isAssignable( Type::fromValue(null, false) ) ); } public function testObjectWithoutInvokeMethodCannotBeAssignedToCallable(): void { $this->assertFalse( $this->type->isAssignable( Type::fromValue(new class { }, false) ) ); } }