1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
<?php
/**
* Copyright 2007 Maintainable Software, LLC
* Copyright 2008-2014 Horde LLC (http://www.horde.org/)
*
* @author Mike Naberezny <mike@maintainable.com>
* @author Derek DeVries <derek@maintainable.com>
* @author Chuck Hagenbuch <chuck@horde.org>
* @license http://www.horde.org/licenses/bsd
* @category Horde
* @package Db
* @subpackage UnitTests
*/
/**
* @author Mike Naberezny <mike@maintainable.com>
* @author Derek DeVries <derek@maintainable.com>
* @author Chuck Hagenbuch <chuck@horde.org>
* @license http://www.horde.org/licenses/bsd
* @group horde_db
* @category Horde
* @package Db
* @subpackage UnitTests
*/
class Horde_Db_Adapter_Postgresql_ColumnTest extends Horde_Db_Adapter_ColumnBase
{
protected $_class = 'Horde_Db_Adapter_Postgresql_Column';
/*##########################################################################
# Construction
##########################################################################*/
public function testDefaultNull()
{
$col = new Horde_Db_Adapter_Postgresql_Column('name', 'NULL', 'character varying(255)');
$this->assertEquals(true, $col->isNull());
}
public function testNotNull()
{
$col = new Horde_Db_Adapter_Postgresql_Column('name', 'NULL', 'character varying(255)', false);
$this->assertEquals(false, $col->isNull());
}
public function testName()
{
$col = new Horde_Db_Adapter_Postgresql_Column('name', 'NULL', 'character varying(255)');
$this->assertEquals('name', $col->getName());
}
public function testSqlType()
{
$col = new Horde_Db_Adapter_Postgresql_Column('name', 'NULL', 'character varying(255)');
$this->assertEquals('character varying(255)', $col->getSqlType());
}
public function testIsText()
{
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'character varying(255)');
$this->assertTrue($col->isText());
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'text');
$this->assertTrue($col->isText());
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'int(11)');
$this->assertFalse($col->isText());
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'float(11,1)');
$this->assertFalse($col->isText());
}
public function testIsNumber()
{
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'character varying(255)');
$this->assertFalse($col->isNumber());
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'text');
$this->assertFalse($col->isNumber());
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'int(11)');
$this->assertTrue($col->isNumber());
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'float(11,1)');
$this->assertTrue($col->isNumber());
}
/*##########################################################################
# Types
##########################################################################*/
public function testTypeString()
{
$col = new Horde_Db_Adapter_Postgresql_Column('name', 'NULL', 'character varying(255)');
$this->assertEquals('string', $col->getType());
}
/*##########################################################################
# Extract Limit
##########################################################################*/
public function testExtractLimitVarchar()
{
$col = new Horde_Db_Adapter_Postgresql_Column('test', 'NULL', 'character varying(255)');
$this->assertEquals(255, $col->getLimit());
}
/*##########################################################################
# Type Cast Values
##########################################################################*/
public function testTypeCastString()
{
$col = new Horde_Db_Adapter_Postgresql_Column('name', "'n/a'::character varying", 'character varying(255)', false);
$this->assertEquals('n/a', $col->getDefault());
}
public function testTypeCastBooleanFalse()
{
$col = new Horde_Db_Adapter_Postgresql_Column('is_active', '0', 'boolean', false);
$this->assertSame(false, $col->getDefault());
}
public function testTypeCastBooleanTrue()
{
$col = new Horde_Db_Adapter_Postgresql_Column('is_active', '1', 'boolean', false);
$this->assertSame(true, $col->getDefault());
}
/*##########################################################################
# Column Types
##########################################################################*/
/*@TODO tests for PostgreSQL-specific column types */
/*##########################################################################
# Defaults
##########################################################################*/
public function testDefaultString()
{
$col = new Horde_Db_Adapter_Postgresql_Column('name', '', 'character varying(255)');
$this->assertEquals('', $col->getDefault());
}
}
|