Doctrine\Tests\ODM\CouchDB\Mapping\ClassMetadataTest::testDeriveChildMetadata PHP Метод

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

    public function testDeriveChildMetadata()
    {
        $cm = new ClassMetadata("Doctrine\\Tests\\ODM\\CouchDB\\Mapping\\Person");
        $cm->mapField(array('fieldName' => 'id', 'id' => true));
        $cm->mapField(array('fieldName' => 'username', 'type' => 'string'));
        $cm->mapAttachments('attachments');
        $cm->mapManyToOne(array('targetDocument' => 'Address', 'fieldName' => 'address'));
        $child = new ClassMetadata('Doctrine\\Tests\\ODM\\CouchDB\\Mapping\\Employee');
        $cm->deriveChildMetadata($child);
        $child->mapField(array('fieldName' => 'status', 'type' => 'string'));
        $this->assertFalse(isset($child->fieldMappings['status']['declared']));
        $this->assertEquals("Doctrine\\Tests\\ODM\\CouchDB\\Mapping\\Employee", $child->name);
        $this->assertTrue(isset($child->fieldMappings['id']), "id field has to be on child metadata");
        $this->assertEquals("Doctrine\\Tests\\ODM\\CouchDB\\Mapping\\Person", $child->fieldMappings['id']['declared']);
        $this->assertTrue(isset($child->fieldMappings['username']), "Username field has to be on child metadata");
        $this->assertEquals("Doctrine\\Tests\\ODM\\CouchDB\\Mapping\\Person", $child->fieldMappings['username']['declared']);
        $this->assertTrue(isset($child->associationsMappings['address']), "address association has to be on child metadata");
        $this->assertEquals("Doctrine\\Tests\\ODM\\CouchDB\\Mapping\\Person", $child->associationsMappings['address']['declared']);
        $this->assertEquals("attachments", $child->attachmentField);
        $this->assertEquals("Doctrine\\Tests\\ODM\\CouchDB\\Mapping\\Person", $child->attachmentDeclaredClass);
        return $child;
    }