Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
$app = 'frontend';
4
include dirname(__FILE__).'/../../bootstrap/functional.php';
5
 
6
$t = new lime_test(9);
7
 
8
// ->__construct()
9
$t->diag('->__construct()');
10
 
11
function is_symfony_i18n_filter($filter)
12
{
13
  return $filter instanceof sfDoctrineRecordI18nFilter;
14
}
15
 
16
$table = Doctrine_Core::getTable('Article');
17
new Article();
18
$t->is(count(array_filter($table->getFilters(), 'is_symfony_i18n_filter')), 1, '->__construct() adds i18n filter');
19
new Article();
20
$t->is(count(array_filter($table->getFilters(), 'is_symfony_i18n_filter')), 1, '->__construct() adds i18n filter once');
21
 
22
// ->serialize() ->unserialize()
23
$t->diag('->serialize() ->unserialize()');
24
 
25
$before = new Author();
26
$before->name = 'test';
27
$serialized = serialize($before);
28
$after = unserialize($serialized);
29
$t->is($after->name, 'test', '->unserialize() maintains field values');
30
 
31
$conn = Doctrine_Manager::getInstance()->getConnectionForComponent('Author');
32
$before = new Author();
33
$before->name = 'test';
34
$serialized = serialize($before);
35
$conn->clear();
36
$conn->evictTables();
37
$after = unserialize($serialized);
38
$t->is($after->name, 'test', '->unserialize() maintains field values upon reset');
39
 
40
$before = new Article();
41
$before->title = 'test';
42
$serialized = serialize($before);
43
$after = unserialize($serialized);
44
$t->is($after->title, 'test', '->unserialize() maintains field values on I18n records');
45
 
46
$conn = Doctrine_Manager::getInstance()->getConnectionForComponent('Article');
47
$before = new Article();
48
$before->title = 'test';
49
$serialized = serialize($before);
50
$conn->clear();
51
$conn->evictTables();
52
$after = unserialize($serialized);
53
$t->is($after->title, 'test', '->unserialize() maintains field values on I18n records upon reset');
54
 
55
$article = new Article();
56
try {
57
$article->setAuthor(new stdClass());
58
} catch (Exception $e) {
59
  $t->is($e->getMessage(), 'Couldn\'t call Doctrine_Core::set(), second argument should be an instance of Doctrine_Record or Doctrine_Null when setting one-to-one references.', 'Making sure proper exception message is thrown');
60
}
61
 
62
$article = new Article();
63
$article->title = 'testing this out';
64
$serialized = serialize($article);
65
$article = unserialize($serialized);
66
 
67
$t->is($article->getTitle(), 'testing this out', 'Making sure getTitle() is still accessible after unserializing');
68
 
69
try {
70
  $test = new ModelWithNumberInColumn();
71
  $test->getColumn_1();
72
  $test->getColumn_2();
73
  $test->getColumn__3();
74
  $t->pass('Make sure __call() handles fields with *_(n) in the field name');
75
} catch (Exception $e) {
76
  $t->fail('__call() failed in sfDoctrineRecord');
77
}