All pastes #799348 Raw Edit

Untitled

public text v1 · immutable
#799348 ·published 2007-11-27 15:56 UTC
rendered paste body
public function testExport()
    {
                $def = new ezcPersistentObjectDefinition();
        $def->table = 'widgets_table';
        $def->class = 'widgetClass';
        
        // a couple of floats
        $def->properties['first_float'] = new ezcPersistentObjectProperty();
        $def->properties['first_float']->columnName = 'first_float';
        $def->properties['first_float']->propertyName = 'first_float';
        $def->properties['first_float']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_FLOAT;
        
        // a couple of ints
        $def->properties['first_int'] = new ezcPersistentObjectProperty();
        $def->properties['first_int']->columnName = 'first_int';
        $def->properties['first_int']->propertyName = 'first_int';
        $def->properties['first_int']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_INT;
        
        // An id property
        $def->idProperty = new ezcPersistentObjectIdProperty();
        $def->idProperty->columnName = 'id';
        $def->idProperty->propertyName = 'id';
        $def->idProperty->generator = new ezcPersistentGeneratorDefinition('ezcPersistentSequenceGenerator');
        
        // FK
        $def->properties['id_one_to_one'] = new ezcPersistentObjectProperty();
        $def->properties['id_one_to_one']->columnName = 'id_one_to_one';
        $def->properties['id_one_to_one']->propertyName = 'id_one_to_one';
        $def->properties['id_one_to_one']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_INT;
        
        
        /*
         Note that $def->relations objects need 'propertyName' to be set for the new generator.
        */
        
        // A one-to-many relation
        $def->relations['widgetOneToMany'] = new ezcPersistentOneToManyRelation(
            'widgets_table',
            'one_to_many_table'
        );
        $def->relations['widgetOneToMany']->propertyName = 'one_to_many';
        $def->relations['widgetOneToMany']->columnMap = array(
            new ezcPersistentSingleTableMap(
                'id',
                'id_widget'
            )
        );
        
        // A one-to-one relation
        $def->relations['widgetOneToOne'] = new ezcPersistentOneToOneRelation(
            'widgets_table',
            'one_to_one_table'
        );
        $def->relations['widgetOneToOne']->propertyName = 'one_to_one';
        $def->relations['widgetOneToOne']->columnMap = array(
            new ezcPersistentSingleTableMap(
                'id_one_to_one',
                'id'
            )
        );
        
        // A many-to-one relation
        $def->relations['widgetManyToOne'] = new ezcPersistentManyToOneRelation(
            'widgets_table',
            'many_to_one_table'
        );
        $def->relations['widgetManyToOne']->propertyName = 'many_to_one';
        $def->relations['widgetManyToOne']->columnMap = array(
            new ezcPersistentSingleTableMap(
                'id',
                'id_widget'
            )
        );
        
        // A many-to-many relation
        $def->relations['widgetManyToMany'] = new ezcPersistentManyToManyRelation(
            'widgets_table',
            'widgets_many_to_many_table',
            'many_to_many_table'
        );
        $def->relations['widgetManyToMany']->propertyName = 'many_to_many';
        $def->relations['widgetManyToMany']->columnMap = array(
            new ezcPersistentDoubleTableMap(
                'id',
                'id_widget',
                'id_many_to_many',
                'id'
            )
        );
        eval( '$newdef = '. var_export( $def, true ) . ';' );
        $this->assertEquals( $def, $newdef );
    }