forked from newsapps/wordpress-mtv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_collection.php
142 lines (108 loc) · 4.08 KB
/
test_collection.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
require_once 'lib/mtv_test_classes.php';
class MTVCollectionTest extends MTVTest {
public function setUp() {
// Initialize a bare Collection
$this->collection = new \mtv\models\Collection;
}
public function test_current() {
// Bare Collection is initialized with no models
$ret = $this->collection->current();
$this->assertEquals($ret, false);
}
public function test_next() {
// Shouldn't be any models to iterate over
$ret = $this->collection->next();
$this->assertEquals($ret, false);
// Add two models and test
$this->collection->add(
new \mtv\models\Model(array('name' => 'one')));
$this->collection->add(
new \mtv\models\Model(array('name' => 'two')));
$ret = $this->collection->next(); // Forward one
$this->assertEquals($ret->attributes['name'], 'two');
}
public function test_key() {
$ret = $this->collection->key();
$this->assertEquals($ret, null);
}
public function test_valid() {
$this->markTestIncomplete('This test has not been implemented yet.');
}
public function test_rewind() {
// Shouldn't be any models to iterate over
$ret = $this->collection->rewind();
$this->assertEquals($ret, false);
// Add two models and test
$this->collection->add(
new \mtv\models\Model(array('name' => 'one')));
$this->collection->add(
new \mtv\models\Model(array('name' => 'two')));
$ret = $this->collection->next(); // Forward one
$ret = $this->collection->rewind(); // Back one
$this->assertEquals($ret->attributes['name'], 'one');
}
public function test_offsetExists() {
$this->markTestIncomplete('This test has not been implemented yet.');
}
public function test_offsetGet() {
$this->markTestIncomplete('This test has not been implemented yet.');
}
public function test_offsetSet() {
$this->markTestIncomplete('This test has not been implemented yet.');
}
public function test_offsetUnset() {
$this->markTestIncomplete('This test has not been implemented yet.');
}
public function test_count() {
$ret = $this->collection->count();
$this->assertEquals($ret, 0);
}
public function test_add() {
$this->collection->add(new \mtv\models\Model);
$this->assertEquals(count($this->collection->models), 1);
$this->assertTrue(
is_a($this->collection->models[0], 'mtv\models\Model'));
}
public function test_clear() {
// Add a model
$this->collection->add(new \mtv\models\Model);
// Clear all
$this->collection->clear();
// Expect an empty array
$this->assertEquals($this->collection->models, array());
}
public function test_to_json() {
// Add empty Model
$this->collection->add(new \mtv\models\Model);
$ret = $this->collection->to_json();
// to_json should return an array with one empty array
$this->assertEquals($ret, array(array()));
}
public function test_get() {
/*
* Collection::get() calls its static model's fetch()
* method. In this case, the base Model's fetch
* method is not implemented and throws an exception.
* TODO: Figure a way to avoid the exception and test
* the expected return value of Collection::get()
*/
$this->markTestIncomplete('This test has not been implemented yet.');
}
public function test_get_by() {
try {
$this->collection->get_by(array());
} catch (NotImplementedException $expected) {
return;
}
$this->fail('An expected NotImplementedException has not been raised.');
}
public function test_filter() {
try {
$this->collection->filter(array());
} catch (NotImplementedException $expected) {
return;
}
$this->fail('An expected NotImplementedException has not been raised.');
}
}