From 94158efc45447e5f2a28733e72a743d47593b935 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 13 Oct 2010 04:06:50 +0000 Subject: [PATCH] MINOR Removed mysql specific functionality from DataObjectSchemaGenerationTest and moved it to a new MySQLDatabaseTest (from r103799) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@112160 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- .../model/DataObjectSchemaGenerationTest.php | 4 -- tests/model/MySQLDatabaseTest.php | 49 +++++++++++++++++++ 2 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 tests/model/MySQLDatabaseTest.php diff --git a/tests/model/DataObjectSchemaGenerationTest.php b/tests/model/DataObjectSchemaGenerationTest.php index 97a990fbc..7e1001eec 100644 --- a/tests/model/DataObjectSchemaGenerationTest.php +++ b/tests/model/DataObjectSchemaGenerationTest.php @@ -29,10 +29,6 @@ class DataObjectSchemaGenerationTest extends SapphireTest { class DataObjectSchemaGenerationTest_DO extends DataObject implements TestOnly { static $db = array( - 'MultiEnum1' => 'MultiEnum("A, B, C, D","")', - 'MultiEnum2' => 'MultiEnum("A, B, C, D","A")', - 'MultiEnum3' => 'MultiEnum("A, B, C, D","A, B")', - 'Enum1' => 'Enum("A, B, C, D","")', 'Enum2' => 'Enum("A, B, C, D","A")', ); diff --git a/tests/model/MySQLDatabaseTest.php b/tests/model/MySQLDatabaseTest.php new file mode 100644 index 000000000..33a61038f --- /dev/null +++ b/tests/model/MySQLDatabaseTest.php @@ -0,0 +1,49 @@ + 'MultiEnum("A, B, C, D","")', + 'MultiEnum2' => 'MultiEnum("A, B, C, D","A")', + 'MultiEnum3' => 'MultiEnum("A, B, C, D","A, B")', + ); + } + + parent::setUp(); + } + + /** + * Check that once a schema has been generated, then it doesn't need any more updating + */ + function testFieldsDontRerequestChanges() { + // These are MySQL specific :-S + if(DB::getConn() instanceof MySQLDatabase) { + + $db = DB::getConn(); + DB::quiet(); + + // Verify that it doesn't need to be recreated + $db->beginSchemaUpdate(); + $obj = new MySQLDatabaseTest_DO(); + $obj->requireTable(); + $needsUpdating = $db->doesSchemaNeedUpdating(); + $db->cancelSchemaUpdate(); + + $this->assertFalse($needsUpdating); + } + } +} + +class MySQLDatabaseTest_DO extends DataObject implements TestOnly { + static $db = array(); + +} \ No newline at end of file