public function testSetupObjectWithDomain()
 {
     $database = $this->getDatabaseMock('bookstore');
     $database->expects($this->once())->method('getDomain')->with($this->equalTo('BOOLEAN'))->will($this->returnValue($this->getDomainMock('INTEGER')));
     $table = $this->getTableMock('books', array('database' => $database));
     $column = new Column();
     $column->setTable($table);
     $column->setDomain($this->getDomainMock('BOOLEAN'));
     $column->loadMapping(array('domain' => 'BOOLEAN', 'name' => 'is_published', 'phpName' => 'IsPublished', 'phpType' => 'boolean', 'tableMapName' => 'IS_PUBLISHED', 'prefix' => 'col_', 'accessorVisibility' => 'public', 'mutatorVisibility' => 'public', 'primaryString' => 'false', 'primaryKey' => 'false', 'nodeKey' => 'false', 'nestedSetLeftKey' => 'false', 'nestedSetRightKey' => 'false', 'treeScopeKey' => 'false', 'required' => 'false', 'autoIncrement' => 'false', 'lazyLoad' => 'true', 'sqlType' => 'TINYINT', 'size' => 1, 'defaultValue' => 'true', 'valueSet' => 'FOO, BAR, BAZ'));
     $this->assertSame('is_published', $column->getName());
     $this->assertSame('IsPublished', $column->getPhpName());
     $this->assertSame('boolean', $column->getPhpType());
     $this->assertSame('IS_PUBLISHED', $column->getTableMapName());
     $this->assertSame('public', $column->getAccessorVisibility());
     $this->assertSame('public', $column->getMutatorVisibility());
     $this->assertFalse($column->isPrimaryString());
     $this->assertFalse($column->isPrimaryKey());
     $this->assertFalse($column->isNodeKey());
     $this->assertFalse($column->isNestedSetLeftKey());
     $this->assertFalse($column->isNestedSetRightKey());
     $this->assertFalse($column->isTreeScopeKey());
     $this->assertTrue($column->isLazyLoad());
     $this->assertCount(3, $column->getValueSet());
 }
Example #2
0
 /**
  * Adds a remove method for an array column.
  * @param string &$script The script will be modified in this method.
  * @param Column $col     The current column.
  */
 protected function addRemoveArrayElement(&$script, Column $col)
 {
     $clo = $col->getLowercasedName();
     $cfc = $col->getPhpName();
     $visibility = $col->getAccessorVisibility();
     $singularPhpName = $col->getPhpSingularName();
     $columnType = $col->getType() === PropelTypes::PHP_ARRAY ? 'array' : 'set';
     $script .= "\n    /**\n     * Removes a value from the [{$clo}] {$columnType} column value.\n     * @param  mixed \$value\n     * " . $col->getDescription();
     if ($col->isLazyLoad()) {
         $script .= "\n     * @param  ConnectionInterface \$con An optional ConnectionInterface connection to use for fetching this lazy-loaded column.";
     }
     $script .= "\n     * @return \$this|" . $this->getObjectClassName(true) . " The current object (for fluent API support)\n     */\n    {$visibility} function remove{$singularPhpName}(\$value";
     if ($col->isLazyLoad()) {
         $script .= ", ConnectionInterface \$con = null";
     }
     // we want to reindex the array, so array_ functions are not the best choice
     $script .= ")\n    {\n        \$targetArray = array();\n        foreach (\$this->get{$cfc}(";
     if ($col->isLazyLoad()) {
         $script .= "\$con";
     }
     $script .= ") as \$element) {\n            if (\$element != \$value) {\n                \$targetArray []= \$element;\n            }\n        }\n        \$this->set{$cfc}(\$targetArray);\n\n        return \$this;\n    } // remove{$singularPhpName}()\n";
 }
 /**
  * Adds a remove method for an array column.
  * @param      string &$script The script will be modified in this method.
  * @param      Column $col The current column.
  */
 protected function addRemoveArrayElement(&$script, Column $col)
 {
     $clo = strtolower($col->getName());
     $cfc = $col->getPhpName();
     $visibility = $col->getAccessorVisibility();
     $singularPhpName = rtrim($cfc, 's');
     $script .= "\n    /**\n     * Removes a value from the [{$clo}] array column value.\n     * @param      mixed \$value\n     * " . $col->getDescription();
     if ($col->isLazyLoad()) {
         $script .= "\n     * @param      PropelPDO An optional PropelPDO connection to use for fetching this lazy-loaded column.";
     }
     $script .= "\n     * @return     " . $this->getObjectClassname() . " The current object (for fluent API support)\n     */\n    {$visibility} function remove{$singularPhpName}(\$value";
     if ($col->isLazyLoad()) {
         $script .= ", PropelPDO \$con = null";
     }
     // we want to reindex the array, so array_ functions are not the best choice
     $script .= ")\n    {\n        \$targetArray = array();\n        foreach (\$this->get{$cfc}(";
     if ($col->isLazyLoad()) {
         $script .= "\$con";
     }
     $script .= ") as \$element) {\n            if (\$element != \$value) {\n                \$targetArray []= \$element;\n            }\n        }\n        \$this->set{$cfc}(\$targetArray);\n\n        return \$this;\n    } // remove{$singularPhpName}()\n";
 }