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()); }
/** * 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"; }