Exemple #1
0
 /**
  * Adds a new column to the table.
  *
  * @param  Column|array    $col
  * @throws EngineException
  * @return Column
  */
 public function addColumn($col)
 {
     if ($col instanceof Column) {
         if (isset($this->columnsByName[$col->getName()])) {
             throw new EngineException(sprintf('Column "%s" declared twice in table "%s"', $col->getName(), $this->getName()));
         }
         $col->setTable($this);
         if ($col->isInheritance()) {
             $this->inheritanceColumn = $col;
         }
         $this->columns[] = $col;
         $this->columnsByName[$col->getName()] = $col;
         $this->columnsByLowercaseName[strtolower($col->getName())] = $col;
         $this->columnsByPhpName[$col->getPhpName()] = $col;
         $col->setPosition(count($this->columns));
         if ($col->requiresTransactionInPostgres()) {
             $this->needsTransactionInPostgres = true;
         }
         return $col;
     }
     $column = new Column();
     $column->setTable($this);
     $column->loadMapping($col);
     return $this->addColumn($column);
     // call self w/ different param
 }
 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());
 }