Pinq\Tests\Integration\Analysis\TypeSystemTest::testRegisteringTypeDataModules PHP Метод

testRegisteringTypeDataModules() публичный Метод

    public function testRegisteringTypeDataModules()
    {
        if ($this->typeSystem instanceof PhpTypeSystem) {
            $typeDataModule = new TypeDataModule([__CLASS__ => ['methods' => ['assertEquals' => INativeType::TYPE_NULL]]], ['get_defined_functions' => INativeType::TYPE_INT]);
            $this->assertNotContains($typeDataModule, $this->typeSystem->getTypeDataModules());
            $this->typeSystem->registerTypeDataModule($typeDataModule);
            $this->assertContains($typeDataModule, $this->typeSystem->getTypeDataModules());
            $this->assertEqualsNativeType(INativeType::TYPE_NULL, $this->typeSystem->getObjectType(__CLASS__)->getMethod(O\Expression::methodCall(O\Expression::value($this), O\Expression::value('assertEquals')))->getReturnType());
            $this->assertEqualsNativeType(INativeType::TYPE_INT, $this->typeSystem->getFunction('get_defined_functions')->getReturnType());
        }
    }