344 lines
7.6 KiB
PHP
344 lines
7.6 KiB
PHP
<?php
|
|
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
|
/**
|
|
* tests for PMA\libraries\plugins\export\TableProperty class
|
|
*
|
|
* @package PhpMyAdmin-test
|
|
*/
|
|
use PMA\libraries\plugins\export\TableProperty;
|
|
|
|
require_once 'libraries/config.default.php';
|
|
require_once 'test/PMATestCase.php';
|
|
|
|
/**
|
|
* tests for PMA\libraries\plugins\export\TableProperty class
|
|
*
|
|
* @package PhpMyAdmin-test
|
|
*/
|
|
class TablePropertyTest extends PMATestCase
|
|
{
|
|
protected $object;
|
|
|
|
/**
|
|
* Configures global environment.
|
|
*
|
|
* @return void
|
|
*/
|
|
function setup()
|
|
{
|
|
$GLOBALS['server'] = 0;
|
|
$row = array(' name ', 'int ', true, ' PRI', '0', 'mysql');
|
|
$this->object = new TableProperty($row);
|
|
}
|
|
|
|
/**
|
|
* tearDown for test cases
|
|
*
|
|
* @return void
|
|
*/
|
|
public function tearDown()
|
|
{
|
|
unset($this->object);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::__construct
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testConstructor()
|
|
{
|
|
$this->assertEquals(
|
|
'name',
|
|
$this->object->name
|
|
);
|
|
|
|
$this->assertEquals(
|
|
'int',
|
|
$this->object->type
|
|
);
|
|
|
|
$this->assertEquals(
|
|
1,
|
|
$this->object->nullable
|
|
);
|
|
|
|
$this->assertEquals(
|
|
'PRI',
|
|
$this->object->key
|
|
);
|
|
|
|
$this->assertEquals(
|
|
'0',
|
|
$this->object->defaultValue
|
|
);
|
|
|
|
$this->assertEquals(
|
|
'mysql',
|
|
$this->object->ext
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::getPureType
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testGetPureType()
|
|
{
|
|
$this->object->type = "int(10)";
|
|
|
|
$this->assertEquals(
|
|
"int",
|
|
$this->object->getPureType()
|
|
);
|
|
|
|
$this->object->type = "char";
|
|
|
|
$this->assertEquals(
|
|
"char",
|
|
$this->object->getPureType()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::isNotNull
|
|
*
|
|
* @param string $nullable nullable value
|
|
* @param string $expected expected output
|
|
*
|
|
* @return void
|
|
* @dataProvider isNotNullProvider
|
|
*/
|
|
public function testIsNotNull($nullable, $expected)
|
|
{
|
|
$this->object->nullable = $nullable;
|
|
|
|
$this->assertEquals(
|
|
$expected,
|
|
$this->object->isNotNull()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Data provider for testIsNotNull
|
|
*
|
|
* @return array Test Data
|
|
*/
|
|
public function isNotNullProvider()
|
|
{
|
|
return array(
|
|
array("NO", "true"),
|
|
array("", "false"),
|
|
array("no", "false")
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::isUnique
|
|
*
|
|
* @param string $key key value
|
|
* @param string $expected expected output
|
|
*
|
|
* @return void
|
|
* @dataProvider isUniqueProvider
|
|
*/
|
|
public function testIsUnique($key, $expected)
|
|
{
|
|
$this->object->key = $key;
|
|
|
|
$this->assertEquals(
|
|
$expected,
|
|
$this->object->isUnique()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Data provider for testIsUnique
|
|
*
|
|
* @return array Test Data
|
|
*/
|
|
public function isUniqueProvider()
|
|
{
|
|
return array(
|
|
array("PRI", "true"),
|
|
array("UNI", "true"),
|
|
array("", "false"),
|
|
array("pri", "false"),
|
|
array("uni", "false"),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::getDotNetPrimitiveType
|
|
*
|
|
* @param string $type type value
|
|
* @param string $expected expected output
|
|
*
|
|
* @return void
|
|
* @dataProvider getDotNetPrimitiveTypeProvider
|
|
*/
|
|
public function testGetDotNetPrimitiveType($type, $expected)
|
|
{
|
|
$this->object->type = $type;
|
|
|
|
$this->assertEquals(
|
|
$expected,
|
|
$this->object->getDotNetPrimitiveType()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Data provider for testGetDotNetPrimitiveType
|
|
*
|
|
* @return array Test Data
|
|
*/
|
|
public function getDotNetPrimitiveTypeProvider()
|
|
{
|
|
return array(
|
|
array("int", "int"),
|
|
array("long", "long"),
|
|
array("char", "string"),
|
|
array("varchar", "string"),
|
|
array("text", "string"),
|
|
array("longtext", "string"),
|
|
array("tinyint", "bool"),
|
|
array("datetime", "DateTime"),
|
|
array("", "unknown"),
|
|
array("dummy", "unknown"),
|
|
array("INT", "unknown")
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::getDotNetObjectType
|
|
*
|
|
* @param string $type type value
|
|
* @param string $expected expected output
|
|
*
|
|
* @return void
|
|
* @dataProvider getDotNetObjectTypeProvider
|
|
*/
|
|
public function testGetDotNetObjectType($type, $expected)
|
|
{
|
|
$this->object->type = $type;
|
|
|
|
$this->assertEquals(
|
|
$expected,
|
|
$this->object->getDotNetObjectType()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Data provider for testGetDotNetObjectType
|
|
*
|
|
* @return array Test Data
|
|
*/
|
|
public function getDotNetObjectTypeProvider()
|
|
{
|
|
return array(
|
|
array("int", "Int32"),
|
|
array("long", "Long"),
|
|
array("char", "String"),
|
|
array("varchar", "String"),
|
|
array("text", "String"),
|
|
array("longtext", "String"),
|
|
array("tinyint", "Boolean"),
|
|
array("datetime", "DateTime"),
|
|
array("", "Unknown"),
|
|
array("dummy", "Unknown"),
|
|
array("INT", "Unknown")
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::getIndexName
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testGetIndexName()
|
|
{
|
|
$this->object->name = "ä'7<ab>";
|
|
$this->object->key = "PRI";
|
|
|
|
$this->assertEquals(
|
|
"index=\"ä'7<ab>\"",
|
|
$this->object->getIndexName()
|
|
);
|
|
|
|
$this->object->key = "";
|
|
|
|
$this->assertEquals(
|
|
"",
|
|
$this->object->getIndexName()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::isPK
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testIsPK()
|
|
{
|
|
$this->object->key = "PRI";
|
|
|
|
$this->assertTrue(
|
|
$this->object->isPK()
|
|
);
|
|
|
|
$this->object->key = "";
|
|
|
|
$this->assertFalse(
|
|
$this->object->isPK()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::formatCs
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testFormatCs()
|
|
{
|
|
$this->object->name = 'Name#name#123';
|
|
|
|
$this->assertEquals(
|
|
'text123Namename',
|
|
$this->object->formatCs("text123#name#")
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::formatXml
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testFormatXml()
|
|
{
|
|
$this->object->name = '"a\'';
|
|
|
|
$this->assertEquals(
|
|
'"a\'index=""a\'"',
|
|
$this->object->formatXml("#name##indexName#")
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA\libraries\plugins\export\TableProperty::format
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testFormat()
|
|
{
|
|
$this->assertEquals(
|
|
'NameintInt32intfalsetrue',
|
|
$this->object->format(
|
|
"#ucfirstName##dotNetPrimitiveType##dotNetObjectType##type#" .
|
|
"#notNull##unique#"
|
|
)
|
|
);
|
|
}
|
|
|
|
}
|