public function setUp()
    {
        if (!class_exists('TableWithStateMachineBehavior')) {
            $schema = <<<EOF
<database name="state_machine_behavior" defaultIdMethod="native">
    <table name="table_with_state_machine_behavior">
        <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" />

        <behavior name="state_machine">
            <parameter name="states" value="draft, unpublished, published" />

            <parameter name="initial_state" value="draft" />

            <parameter name="transition" value="draft to published with publish" />
            <parameter name="transition" value="published to unpublished with unpublish" />
            <parameter name="transition" value="unpublished to published with publish" />

            <parameter name="state_column" value="state" />
        </behavior>
    </table>
    <table name="table_with_state_machine_behavior_with_custom_column">
        <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" />

        <behavior name="state_machine">
            <parameter name="states" value="draft, published, not_yEt_published, flagged" />

            <parameter name="initial_state" value="draft" />

            <parameter name="transition" value="draft to published with publish" />
            <parameter name="transition" value="published to not_yet_published with unpublish" />
            <parameter name="transition" value="not_yEt_published to published with publish" />
            <parameter name="transition" value="not_yEt_published to flagged with flag_for_publish" />
            <parameter name="transition" value="flagged to published with publish" />

            <parameter name="state_column" value="my_state" />
        </behavior>
    </table>
</database>
EOF;
            $builder = new QuickBuilder();
            $config = $builder->getConfig();
            $builder->setConfig($config);
            $builder->setSchema($schema);
            $builder->build();
        }
    }
    public function testToArrayKeyTypePreDefined()
    {
        $schema = <<<EOF
<database name="test"  namespace="MyNameSpace">
    <table name="test_key_type_table">
        <column name="id_key_type" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" />
        <column name="name_key_type" type="VARCHAR" />
    </table>
</database>
EOF;
        $extraConf['propel']['generator']['objectModel']['defaultKeyType'] = 'camelName';
        $generatorConfig = new QuickGeneratorConfig($extraConf);
        $builder = new QuickBuilder();
        $builder->setSchema($schema);
        $builder->setConfig($generatorConfig);
        $builder->buildClasses();
        $expectedKeys = array('idKeyType', 'nameKeyType');
        $object = new TestKeyTypeTable();
        $this->assertEquals($expectedKeys, array_keys($object->toArray()), 'toArray() returns an associative array with pre-defined key type in properties.');
    }