<?php require_once "Schema.php"; class BDL_Test_Order_head extends PHPUnit_Extensions_Database_TestCase_CreateTable { public function getTableName() { return 'ORDER_HEAD'; } public function getColumnList() { return array( 'ORDER_NUM' => array( 'type' => array( 'NUMBER', 'INTEGER' ), 'min_length' => 10, 'max_length' => 10, 'decimals' => 0, // 'underflow' => -1, 'nullable' => false, 'test_value' => "8765432109", ), 'ORDER_DATE' => array( 'type' => array( 'DATE' ), 'nullable' => false, 'overflow' => "SYSDATE + 1", 'test_value' => "TO_DATE( '2012-10-22', 'YYYY-MM-DD')", ), 'DUE_DATE' => array( 'type' => array( 'DATE' ), 'nullable' => false, 'underflow' => "TO_DATE( '2012-10-21', 'YYYY-MM-DD')", 'test_value' => "TO_DATE( '2012-10-23', 'YYYY-MM-DD')", ), 'STATUS' => array( 'type' => array( 'VARCHAR2', 'VARCHAR' ), 'min_length' => 11, 'max_length' => 15, 'nullable' => false, 'legal_values' => array( "'complete'", "'in progress'" ), 'illegal_values' => array( "'foobar'", "'blurk'", "' '" ), 'test_value' => "'complete'", ), 'SUPPLIER_ID' => array( 'type' => array( 'NUMBER', 'INTEGER' ), 'min_length' => 7, 'max_length' => 7, 'decimals' => 0, 'nullable' => false, 'test_value' => "1", ), 'STAFF_ID' => array( 'type' => array( 'NUMBER', 'INTEGER' ), 'min_length' => 7, 'max_length' => 7, 'decimals' => 0, 'nullable' => false, 'test_value' => "326", ), 'COMMENTS' => array( 'type' => array( 'VARCHAR2', 'CLOB' ), 'min_length' => 1000, 'max_length' => 4000, 'nullable' => true, 'test_value' => "'Blah blah blah'", ), ); } public function getPKColumnList() { return array( 'ORDER_NUM' ); } public function getFKColumnList() { return array( 'STAFF' => array( 'STAFF_ID' ), 'SUPPLIER' => array( 'SUPPLIER_ID' ), ); } /** * Return fixture data set for current database connection. * * @access protected * @return PHPUnit_Extensions_Database_DataSet_IDataSet * @todo Parameterise the fixture filename. */ protected function getDataSet() { return $this->createXMLDataSet("BDL_Fixture_Order_head.xml"); } public function testTableExists() { $this->assertTableExists(); } /** * @dataProvider provideColumnNames */ public function testColumnExists( $columnName ) { $this->assertColumnExists( $columnName ); } /** * @dataProvider provideColumnTypes */ public function testColumnDataType( $columnName, $columnTypeList ) { $this->assertColumnDataType( $columnName, $columnTypeList ); } /** * @dataProvider provideColumnLengths */ public function testColumnLength( $columnName, $columnLengthList ) { $this->assertColumnLength( $columnName, $columnLengthList ); } /** * @dataProvider provideColumnLegalValues */ public function testColumnLegalValue( $columnName, $legalValue ) { $this->assertColumnLegalValue( $columnName, $legalValue ); } /** * @dataProvider provideColumnIllegalValues * @expectedException PDOException * @expectedExceptionMessage check constraint * @expectedExceptionCode HY000 */ public function testColumnIllegalValue( $columnName, $illegalValue ) { $this->assertColumnIllegalValue( $columnName, $illegalValue ); } /** * @dataProvider provideColumnUnderflowValues * @expectedException PDOException * @expectedExceptionMessage check constraint * @expectedExceptionCode HY000 */ public function testColumnUnderflowValue( $columnName, $underflowValue ) { $this->assertColumnUnderflowValue( $columnName, $underflowValue ); } /** * @dataProvider provideColumnOverflowValues * @expectedException PDOException * @expectedExceptionMessage check constraint * @expectedExceptionCode HY000 */ public function testColumnOverflowValue( $columnName, $overflowValue ) { $this->assertColumnOverflowValue( $columnName, $overflowValue ); } /** * @dataProvider provideColumnNullabilities */ public function testColumnNullability( $columnName, $columnNullability ) { $this->assertColumnNullability( $columnName, $columnNullability ); } public function testPKExists() { return $this->assertPKExists(); } /** * @depends testPKExists */ public function testPKColumns( $constraintName ) { $this->assertPKColumns( $constraintName ); } /** * @dataProvider provideFKReferencedTables */ public function testFKsExist( $referencedTableName ) { return $this->assertFKsExist( $referencedTableName ); } /** * @dataProvider provideFKReferencedTables */ public function testFKColumns( $referencedTableName ) { $this->assertFKColumns( $referencedTableName ); } /** * @dataProvider provideConstraintNames */ public function testConstraintsNamed( $constraintName, $constraintType ) { $this->assertConstraintNamed( $constraintName, $constraintType ); } } ?>