defManager = new ezcPersistentCodeManager( dirname( __FILE__ ) . '/data/' ); try { $this->db = ezcDbInstance::get(); } catch ( Exception $e ) { $this->markTestSkipped( 'There was no database configured' ); } $this->queryCreator = new ezcPersistentIdentityRelationQueryCreator( $this->defManager, $this->db ); // @TODO: This is currently needed to fix the attribute set in // ezcDbHandler. Should be removed as soon as this is fixed! $this->db->setAttribute( PDO::ATTR_CASE, PDO::CASE_NATURAL ); } protected function getOneLevelOneRelationRelations() { return array( 'employer' => new ezcPersistentRelationFindDefinition( 'RelationTestEmployer' ), ); } protected function getOneLevelOneRelationLoadQuery( $relations ) { return $this->queryCreator->createLoadQuery( 'RelationTestPerson', 2, $relations ); } protected function getOneLevelMultiRelationRelations() { return array( 'employer' => new ezcPersistentRelationFindDefinition( 'RelationTestEmployer' ), 'address' => new ezcPersistentRelationFindDefinition( 'RelationTestAddress' ), ); } protected function getOneLevelMultiRelationLoadQuery( $relations ) { return $this->queryCreator->createLoadQuery( 'RelationTestPerson', 2, $relations ); } protected function getMultiLevelSingleRelationRelations() { return array( 'addresses' => new ezcPersistentRelationFindDefinition( 'RelationTestAddress', null, array( 'habitants' => new ezcPersistentRelationFindDefinition( 'RelationTestPerson' ) ) ), ); } protected function getMultiLevelSingleRelationLoadQuery( $relations ) { return $this->queryCreator->createLoadQuery( 'RelationTestPerson', 2, $relations ); } protected function getMultiLevelMultiRelationRelations() { return array( 'addresses' => new ezcPersistentRelationFindDefinition( 'RelationTestAddress', null, array( 'habitants' => new ezcPersistentRelationFindDefinition( 'RelationTestPerson', null, array( 'habitant_employer' => new ezcPersistentRelationFindDefinition( 'RelationTestEmployer' ), 'habitant_birthday' => new ezcPersistentRelationFindDefinition( 'RelationTestBirthday' ), ) ) ) ), 'employer' => new ezcPersistentRelationFindDefinition( 'RelationTestEmployer' ), 'birthday' => new ezcPersistentRelationFindDefinition( 'RelationTestBirthday' ), ); } protected function getMultiLevelMultiRelationLoadQuery( $relations ) { return $this->queryCreator->createLoadQuery( 'RelationTestPerson', 2, $relations ); } } ?>