Author: dr
Date: Mon Jan 14 11:29:02 2008
New Revision: 7142
Log:
- Implemented issue #11562: Schema validator for duplicate index names.
Modified:
trunk/DatabaseSchema/ChangeLog
trunk/DatabaseSchema/src/db_schema_autoload.php
trunk/DatabaseSchema/src/validator.php
trunk/DatabaseSchema/tests/validator_test.php
Modified: trunk/DatabaseSchema/ChangeLog
==============================================================================
--- trunk/DatabaseSchema/ChangeLog [iso-8859-1] (original)
+++ trunk/DatabaseSchema/ChangeLog [iso-8859-1] Mon Jan 14 11:29:02 2008
@@ -1,3 +1,9 @@
+1.4alpha1 - [RELEASEDATE]
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Implemented issue #11562: Schema validator for duplicate index names.
+
+
1.3.1 - Monday 14 January 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Modified: trunk/DatabaseSchema/src/db_schema_autoload.php
==============================================================================
--- trunk/DatabaseSchema/src/db_schema_autoload.php [iso-8859-1] (original)
+++ trunk/DatabaseSchema/src/db_schema_autoload.php [iso-8859-1] Mon Jan 14
11:29:02 2008
@@ -44,6 +44,7 @@
'ezcDbSchemaIndexFieldsValidator' =>
'DatabaseSchema/validators/index_fields.php',
'ezcDbSchemaMysqlReader' =>
'DatabaseSchema/handlers/mysql/reader.php',
'ezcDbSchemaMysqlWriter' =>
'DatabaseSchema/handlers/mysql/writer.php',
+ 'ezcDbSchemaNonUniqueIndexNameValidator' =>
'DatabaseSchema/validators/non_unique_index_name.php',
'ezcDbSchemaOptions' =>
'DatabaseSchema/options/schema.php',
'ezcDbSchemaOracleReader' =>
'DatabaseSchema/handlers/oracle/reader.php',
'ezcDbSchemaOracleWriter' =>
'DatabaseSchema/handlers/oracle/writer.php',
Modified: trunk/DatabaseSchema/src/validator.php
==============================================================================
--- trunk/DatabaseSchema/src/validator.php [iso-8859-1] (original)
+++ trunk/DatabaseSchema/src/validator.php [iso-8859-1] Mon Jan 14 11:29:02 2008
@@ -40,6 +40,7 @@
'ezcDbSchemaTypesValidator',
'ezcDbSchemaIndexFieldsValidator',
'ezcDbSchemaAutoIncrementIndexValidator',
+ 'ezcDbSchemaNonUniqueIndexNameValidator',
);
/**
Modified: trunk/DatabaseSchema/tests/validator_test.php
==============================================================================
--- trunk/DatabaseSchema/tests/validator_test.php [iso-8859-1] (original)
+++ trunk/DatabaseSchema/tests/validator_test.php [iso-8859-1] Mon Jan 14
11:29:02 2008
@@ -116,6 +116,80 @@
self::assertEquals( $expected, ezcDbSchemaValidator::validate( $schema
) );
}
+ public function testForDuplicateIndexName1()
+ {
+ $schema = new ezcDbSchema(
+ array(
+ 'table1' => new ezcDbSchemaTable(
+ array (
+ 'field1' => new ezcDbSchemaField( 'integer' ),
+ ),
+ array (
+ 'index1' => new ezcDbSchemaIndex( array ( 'field1' =>
new ezcDbSchemaIndexField() ) ),
+ )
+ ),
+ 'table2' => new ezcDbSchemaTable(
+ array (
+ 'field1' => new ezcDbSchemaField( 'integer' ),
+ ),
+ array (
+ 'index1' => new ezcDbSchemaIndex( array ( 'field1' =>
new ezcDbSchemaIndexField() ) ),
+ )
+ ),
+ )
+ );
+
+ $expected = array(
+ "The index name 'index1' is not unique. It exists for the tables:
'table1', 'table2'.",
+ );
+ self::assertEquals( $expected, ezcDbSchemaValidator::validate( $schema
) );
+ }
+
+ public function testForDuplicateIndexName2()
+ {
+ $schema = new ezcDbSchema(
+ array(
+ 'table1' => new ezcDbSchemaTable(
+ array (
+ 'field1' => new ezcDbSchemaField( 'integer' ),
+ ),
+ array (
+ 'index1' => new ezcDbSchemaIndex( array ( 'field1' =>
new ezcDbSchemaIndexField() ) ),
+ )
+ ),
+ 'table2' => new ezcDbSchemaTable(
+ array (
+ 'field1' => new ezcDbSchemaField( 'integer' ),
+ ),
+ array (
+ 'index2' => new ezcDbSchemaIndex( array ( 'field1' =>
new ezcDbSchemaIndexField() ) ),
+ )
+ ),
+ 'table3' => new ezcDbSchemaTable(
+ array (
+ 'field1' => new ezcDbSchemaField( 'integer' ),
+ ),
+ array (
+ 'index1' => new ezcDbSchemaIndex( array ( 'field1' =>
new ezcDbSchemaIndexField() ) ),
+ )
+ ),
+ 'table4' => new ezcDbSchemaTable(
+ array (
+ 'field1' => new ezcDbSchemaField( 'integer' ),
+ ),
+ array (
+ 'index1' => new ezcDbSchemaIndex( array ( 'field1' =>
new ezcDbSchemaIndexField() ) ),
+ )
+ ),
+ )
+ );
+
+ $expected = array(
+ "The index name 'index1' is not unique. It exists for the tables:
'table1', 'table3', 'table4'.",
+ );
+ self::assertEquals( $expected, ezcDbSchemaValidator::validate( $schema
) );
+ }
+
public static function suite()
{
return new PHPUnit_Framework_TestSuite(
'ezcDatabaseSchemaValidatorTest' );
--
svn-components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/svn-components