1
0
mirror of synced 2024-12-13 14:56:01 +03:00
doctrine2/tests/ConfigurableTestCase.php

218 lines
9.4 KiB
PHP

<?php
require_once("UnitTestCase.php");
class Doctrine_Configurable_TestCase extends Doctrine_UnitTestCase {
public function prepareTables() { }
public function prepareData() { }
public function testGetIndexNameFormatAttribute() {
// default index name format is %_idx
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_IDXNAME_FORMAT), '%s_idx');
}
public function testGetSequenceNameFormatAttribute() {
// default sequence name format is %_seq
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_SEQNAME_FORMAT), '%s_seq');
}
public function testSetIndexNameFormatAttribute() {
$this->manager->setAttribute(Doctrine::ATTR_IDXNAME_FORMAT, '%_index');
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_IDXNAME_FORMAT), '%_index');
}
public function testSetSequenceNameFormatAttribute() {
$this->manager->setAttribute(Doctrine::ATTR_SEQNAME_FORMAT, '%_sequence');
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_SEQNAME_FORMAT), '%_sequence');
}
public function testExceptionIsThrownWhenSettingIndexNameFormatAttributeAtTableLevel() {
try {
$this->connection->getTable('Entity')->setAttribute(Doctrine::ATTR_IDXNAME_FORMAT, '%s_idx');
$this->fail();
} catch(Doctrine_Exception $e) {
$this->pass();
}
}
public function testExceptionIsThrownWhenSettingSequenceNameFormatAttributeAtTableLevel() {
try {
$this->connection->getTable('Entity')->setAttribute(Doctrine::ATTR_SEQNAME_FORMAT, '%s_seq');
$this->fail();
} catch(Doctrine_Exception $e) {
$this->pass();
}
}
public function testSettingFieldCaseIsSuccesfulWithZero() {
try {
$this->connection->setAttribute(Doctrine::ATTR_FIELD_CASE, 0);
$this->pass();
} catch(Doctrine_Exception $e) {
$this->fail();
}
}
public function testSettingFieldCaseIsSuccesfulWithCaseConstants() {
try {
$this->connection->setAttribute(Doctrine::ATTR_FIELD_CASE, CASE_LOWER);
$this->pass();
} catch(Doctrine_Exception $e) {
$this->fail();
}
}
public function testSettingFieldCaseIsSuccesfulWithCaseConstants2() {
try {
$this->connection->setAttribute(Doctrine::ATTR_FIELD_CASE, CASE_UPPER);
$this->pass();
} catch(Doctrine_Exception $e) {
$this->fail();
}
}
public function testExceptionIsThrownWhenSettingFieldCaseToNotZeroOneOrTwo() {
try {
$this->connection->setAttribute(Doctrine::ATTR_FIELD_CASE, -1);
$this->fail();
} catch(Doctrine_Exception $e) {
$this->pass();
}
}
public function testExceptionIsThrownWhenSettingFieldCaseToNotZeroOneOrTwo2() {
try {
$this->connection->setAttribute(Doctrine::ATTR_FIELD_CASE, 5);
$this->fail();
} catch(Doctrine_Exception $e) {
$this->pass();
}
}
public function testDefaultQuoteIdentifierAttributeValueIsFalse() {
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_QUOTE_IDENTIFIER), false);
}
public function testQuoteIdentifierAttributeAcceptsBooleans() {
$this->manager->setAttribute(Doctrine::ATTR_QUOTE_IDENTIFIER, true);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_QUOTE_IDENTIFIER), true);
$this->manager->setAttribute(Doctrine::ATTR_QUOTE_IDENTIFIER, false);
}
public function testDefaultSequenceColumnNameAttributeValueIsId() {
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_SEQCOL_NAME), 'id');
}
public function testSequenceColumnNameAttributeAcceptsStrings() {
$this->manager->setAttribute(Doctrine::ATTR_SEQCOL_NAME, 'sequence');
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_SEQCOL_NAME), 'sequence');
}
public function testValidatorAttributeAcceptsBooleans() {
$this->manager->setAttribute(Doctrine::ATTR_VLD, true);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_VLD), true);
}
public function testAutoLengthValidationAttributeAcceptsBooleans() {
$this->manager->setAttribute(Doctrine::ATTR_AUTO_LENGTH_VLD, true);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_AUTO_LENGTH_VLD), true);
}
public function testAutoTypeValidationAttributeAcceptsBooleans() {
$this->manager->setAttribute(Doctrine::ATTR_AUTO_TYPE_VLD, true);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_AUTO_TYPE_VLD), true);
}
public function testDefaultPortabilityAttributeValueIsAll() {
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_PORTABILITY), Doctrine::PORTABILITY_ALL);
}
public function testPortabilityAttributeAcceptsPortabilityConstants() {
$this->manager->setAttribute(Doctrine::ATTR_PORTABILITY, Doctrine::PORTABILITY_RTRIM | Doctrine::PORTABILITY_FIX_CASE);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_PORTABILITY),
Doctrine::PORTABILITY_RTRIM | Doctrine::PORTABILITY_FIX_CASE);
}
public function testDefaultListenerIsDoctrineEventListener() {
$this->assertTrue($this->manager->getAttribute(Doctrine::ATTR_LISTENER) instanceof Doctrine_EventListener);
}
public function testListenerAttributeAcceptsEventListenerObjects() {
$this->manager->setAttribute(Doctrine::ATTR_LISTENER, new Doctrine_EventListener_Debugger());
$this->assertTrue($this->manager->getAttribute(Doctrine::ATTR_LISTENER) instanceof Doctrine_EventListener_Debugger);
}
public function testCollectionKeyAttributeAcceptsValidColumnName() {
try {
$this->connection->getTable('User')->setAttribute(Doctrine::ATTR_COLL_KEY, 'name');
$this->pass();
} catch(Exception $e) {
$this->fail();
}
}
public function testSettingInvalidColumnNameToCollectionKeyAttributeThrowsException() {
try {
$this->connection->getTable('User')->setAttribute(Doctrine::ATTR_COLL_KEY, 'unknown');
$this->fail();
} catch(Exception $e) {
$this->pass();
}
}
public function testSettingCollectionKeyAttributeOnOtherThanTableLevelThrowsException() {
try {
$this->connection->setAttribute(Doctrine::ATTR_COLL_KEY, 'name');
$this->fail();
} catch(Exception $e) {
$this->pass();
}
}
public function testSetAttribute() {
$table = $this->connection->getTable("User");
/**
$this->manager->setAttribute(Doctrine::ATTR_CACHE_TTL,100);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_CACHE_TTL),100);
$this->manager->setAttribute(Doctrine::ATTR_CACHE_SIZE,1);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_CACHE_SIZE),1);
$this->manager->setAttribute(Doctrine::ATTR_CACHE_DIR,"%ROOT%".DIRECTORY_SEPARATOR."cache");
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_CACHE_DIR),$this->manager->getRoot().DIRECTORY_SEPARATOR."cache");
*/
$this->manager->setAttribute(Doctrine::ATTR_FETCHMODE,Doctrine::FETCH_LAZY);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_FETCHMODE),Doctrine::FETCH_LAZY);
$this->manager->setAttribute(Doctrine::ATTR_BATCH_SIZE, 5);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_BATCH_SIZE),5);
$this->manager->setAttribute(Doctrine::ATTR_LOCKMODE, Doctrine::LOCK_PESSIMISTIC);
$this->assertEqual($this->manager->getAttribute(Doctrine::ATTR_LOCKMODE), Doctrine::LOCK_PESSIMISTIC);
// test invalid arguments
/**
try {
$this->manager->setAttribute(Doctrine::ATTR_CACHE_TTL,-12);
} catch(Exception $e) {
$this->assertTrue($e instanceof Exception);
}
try {
$this->manager->setAttribute(Doctrine::ATTR_CACHE_SIZE,-12);
} catch(Exception $e) {
$this->assertTrue($e instanceof Exception);
}
try {
$this->manager->setAttribute(Doctrine::ATTR_BATCH_SIZE,-12);
} catch(Exception $e) {
$this->assertTrue($e instanceof Exception);
}
*/
try {
$this->connection->beginTransaction();
$this->manager->setAttribute(Doctrine::ATTR_LOCKMODE, Doctrine::LOCK_OPTIMISTIC);
} catch(Exception $e) {
$this->assertTrue($e instanceof Exception);
$this->connection->commit();
}
try {
$this->connection->beginTransaction();
$this->connection->setAttribute(Doctrine::ATTR_LOCKMODE, Doctrine::LOCK_PESSIMISTIC);
} catch(Exception $e) {
$this->assertTrue($e instanceof Exception);
$this->connection->commit();
}
}
public function testGetAttributes() {
$this->assertTrue(is_array($this->manager->getAttributes()));
}
}