@@ -4,10 +4,13 @@ declare(strict_types=1);
4
4
5
5
namespace Tests \Cases ;
6
6
7
+ use Mockery ;
7
8
use Nette \Caching \Storages \DevNullStorage ;
8
9
use Nette \Database \Connection ;
9
10
use Nette \Database \Context ;
11
+ use Nette \Database \ResultSet ;
10
12
use Nette \Database \Structure ;
13
+ use ReflectionClass ;
11
14
use Tester \Assert ;
12
15
use Tester \TestCase ;
13
16
use Ublaboo ;
@@ -159,6 +162,38 @@ final class NetteDatabaseDataSourceTest extends TestCase
159
162
Assert::same (['text with space ' , 'text with space ' ], $ q [1 ]);
160
163
}
161
164
165
+ public function testGetDataFromDatabase (): void
166
+ {
167
+ $ data = ['foo ' , 'bar ' ];
168
+
169
+ $ resultSet = Mockery::mock (ResultSet::class);
170
+ $ resultSet ->shouldReceive ('fetchAll ' )
171
+ ->once ()
172
+ ->andReturn ($ data );
173
+
174
+ $ connection = Mockery::mock (Context::class);
175
+ $ connection ->shouldReceive ('query ' )
176
+ ->once ()
177
+ ->andReturn ($ resultSet );
178
+
179
+ $ s = new NetteDatabaseDataSource ($ connection , 'SELECT * FROM user ' );
180
+
181
+ Assert::same ($ data , $ s ->getData ());
182
+ }
183
+
184
+ public function testGetDataAlreadyStored (): void
185
+ {
186
+ $ data = ['foo ' , 'bar ' ];
187
+
188
+ $ s = new NetteDatabaseDataSource ($ this ->db , 'SELECT * FROM user ' );
189
+ $ rc = new ReflectionClass (get_class ($ s ));
190
+ $ rp = $ rc ->getProperty ('data ' );
191
+ $ rp ->setAccessible (true );
192
+ $ rp ->setValue ($ s , $ data );
193
+
194
+ Assert::same ($ data , $ s ->getData ());
195
+ }
196
+
162
197
public function testComplexQuery (): void
163
198
{
164
199
$ q =
0 commit comments