当前路径:vendor/sebastian/type/tests/unit/TypeTest.php <?php declare(strict_types=1); /* * This file is part of sebastian/type. * * (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 SebastianBergmann\Type; use PHPUnit\Framework\TestCase; /** * @covers \SebastianBergmann\Type\Type * * @uses \SebastianBergmann\Type\SimpleType * @uses \SebastianBergmann\Type\GenericObjectType * @uses \SebastianBergmann\Type\ObjectType * @uses \SebastianBergmann\Type\TypeName * @uses \SebastianBergmann\Type\CallableType * @uses \SebastianBergmann\Type\IterableType */ final class TypeTest extends TestCase { /** * @dataProvider valuesToNullableType */ public function testTypeMappingFromValue($value, bool $allowsNull, Type $expectedType): void { $this->assertEquals($expectedType, Type::fromValue($value, $allowsNull)); } public function valuesToNullableType(): array { return [ '?null' => [null, true, new NullType], 'null' => [null, false, new NullType], '?integer' => [1, true, new SimpleType('int', true, 1)], 'integer' => [1, false, new SimpleType('int', false, 1)], '?boolean' => [true, true, new SimpleType('bool', true, true)], 'boolean' => [true, false, new SimpleType('bool', false, true)], '?object' => [new \stdClass, true, new ObjectType(TypeName::fromQualifiedName(\stdClass::class), true)], 'object' => [new \stdClass, false, new ObjectType(TypeName::fromQualifiedName(\stdClass::class), false)], ]; } /** * @dataProvider namesToTypes */ public function testTypeMappingFromName(string $typeName, bool $allowsNull, $expectedType): void { $this->assertEquals($expectedType, Type::fromName($typeName, $allowsNull)); } public function namesToTypes(): array { return [ '?void' => ['void', true, new VoidType], 'void' => ['void', false, new VoidType], '?null' => ['null', true, new NullType], 'null' => ['null', true, new NullType], '?int' => ['int', true, new SimpleType('int', true)], '?integer' => ['integer', true, new SimpleType('int', true)], 'int' => ['int', false, new SimpleType('int', false)], 'bool' => ['bool', false, new SimpleType('bool', false)], 'boolean' => ['boolean', false, new SimpleType('bool', false)], 'object' => ['object', false, new GenericObjectType(false)], 'real' => ['real', false, new SimpleType('float', false)], 'double' => ['double', false, new SimpleType('float', false)], 'float' => ['float', false, new SimpleType('float', false)], 'string' => ['string', false, new SimpleType('string', false)], 'array' => ['array', false, new SimpleType('array', false)], 'resource' => ['resource', false, new SimpleType('resource', false)], 'resource (closed)' => ['resource (closed)', false, new SimpleType('resource (closed)', false)], 'unknown type' => ['unknown type', false, new UnknownType], '?classname' => [\stdClass::class, true, new ObjectType(TypeName::fromQualifiedName(\stdClass::class), true)], 'classname' => [\stdClass::class, false, new ObjectType(TypeName::fromQualifiedName(\stdClass::class), false)], 'callable' => ['callable', false, new CallableType(false)], '?callable' => ['callable', true, new CallableType(true)], 'iterable' => ['iterable', false, new IterableType(false)], '?iterable' => ['iterable', true, new IterableType(true)], ]; } }
相关源码
- 可旋转的彩色立方体C#源代码2021-10-29
- 在线考试系统2021-10-15
- EduSoho开源网校系统源码2019-06-27
- 仿拼多多小程序商城源码2019-06-06
- PHP5网站运行监测系统源码2017-04-14
关于我们 | 顾问团队 | 发展历程 | 联系我们 | 源码上传
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2023. 京ICP备09089570号 | 京公网安备11010702000869号
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2023. 京ICP备09089570号 | 京公网安备11010702000869号