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 ); }