rendered paste bodypublic 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 );
}