<?php

class DataObjectSchemaGenerationTest extends SapphireTest {
	protected $extraDataObjects = array(
		'DataObjectSchemaGenerationTest_DO',
	);
	
	/**
	 * Check that once a schema has been generated, then it doesn't need any more updating
	 */
	function testFieldsDontRerequestChanges() {
		$db = DB::getConn();
		DB::quiet();
		

		// Table will have been initially created by the $extraDataObjects setting
		
		
		// Verify that it doesn't need to be recreated
		$db->beginSchemaUpdate();
		$obj = new DataObjectSchemaGenerationTest_DO();
		$obj->requireTable();
		$needsUpdating = $db->doesSchemaNeedUpdating();
		$db->cancelSchemaUpdate();
		
		$this->assertFalse($needsUpdating);
	}
}

class DataObjectSchemaGenerationTest_DO extends DataObject implements TestOnly {
	static $db = array(
		'Enum1' => 'Enum("A, B, C, D","")',
		'Enum2' => 'Enum("A, B, C, D","A")',
	);

}