19 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
33 protected function setUp()
35 $this->stream =
new Stream(
'php://memory',
'wb+');
43 $this->assertInstanceOf(Stream::class, $this->stream);
51 $resource = fopen(
'php://memory',
'wb+');
53 $this->assertInstanceOf(Stream::class,
$stream);
63 $this->testFilesToDelete[] = $fileName;
64 $stream =
new Stream($fileName,
'w');
73 $stream =
new Stream(
'php://memory',
'r');
83 $this->stream->write($message);
84 $this->assertEquals($message, (
string)$this->stream);
92 $resource = fopen(
'php://memory',
'wb+');
102 $this->expectException(\InvalidArgumentException::class);
103 new Stream([
' THIS WILL NOT WORK ']);
113 $this->testFilesToDelete[] = $fileName;
114 file_put_contents($fileName,
'FOO BAR');
115 $stream =
new Stream($fileName,
'w');
127 $this->testFilesToDelete[] = $fileName;
128 $resource = fopen($fileName,
'wb+');
131 $this->assertFalse(is_resource($resource));
141 $this->testFilesToDelete[] = $fileName;
142 $resource = fopen($fileName,
'wb+');
156 $this->testFilesToDelete[] = $fileName;
157 $resource = fopen($fileName,
'wb+');
162 $this->assertTrue(is_resource($detached));
163 $this->assertSame($resource, $detached);
171 $this->stream->detach();
172 $this->assertNull($this->stream->getSize());
181 $this->testFilesToDelete[] = $fileName;
182 file_put_contents($fileName,
'FOO BAR');
183 $resource = fopen($fileName,
'wb+');
197 $this->testFilesToDelete[] = $fileName;
198 file_put_contents($fileName,
'FOO BAR');
199 $resource = fopen($fileName,
'wb+');
204 $this->expectException(\RuntimeException::class);
205 $this->expectExceptionCode(1436717285);
215 $this->testFilesToDelete[] = $fileName;
216 file_put_contents($fileName,
'FOO BAR');
217 $resource = fopen($fileName,
'wb+');
230 $this->testFilesToDelete[] = $fileName;
231 file_put_contents($fileName,
'FOO BAR');
232 $resource = fopen($fileName,
'wb+');
235 while (!feof($resource)) {
236 fread($resource, 4096);
247 $this->testFilesToDelete[] = $fileName;
248 file_put_contents($fileName,
'FOO BAR');
249 $resource = fopen($fileName,
'wb+');
263 $this->testFilesToDelete[] = $fileName;
264 file_put_contents($fileName,
'FOO BAR');
265 $resource = fopen($fileName,
'wb+');
276 $this->testFilesToDelete[] = $fileName;
277 file_put_contents($fileName,
'FOO BAR');
278 $resource = fopen($fileName,
'wb+');
290 $this->testFilesToDelete[] = $fileName;
291 file_put_contents($fileName,
'FOO BAR');
292 $resource = fopen($fileName,
'wb+');
304 $this->testFilesToDelete[] = $fileName;
305 file_put_contents($fileName,
'FOO BAR');
306 $resource = fopen($fileName,
'wb+');
319 $this->testFilesToDelete[] = $fileName;
320 file_put_contents($fileName,
'FOO BAR');
321 $resource = fopen($fileName,
'wb+');
324 $this->expectException(\RuntimeException::class);
325 $this->expectExceptionCode(1436717287);
335 $this->testFilesToDelete[] = $fileName;
336 file_put_contents($fileName,
'FOO BAR');
337 $resource = fopen($fileName,
'wb+');
349 $this->testFilesToDelete[] = $fileName;
350 file_put_contents($fileName,
'FOO BAR');
351 $resource = fopen($fileName,
'wb+');
354 $this->expectException(\RuntimeException::class);
355 $this->expectExceptionCode(1436717290);
365 $this->testFilesToDelete[] = $fileName;
366 file_put_contents($fileName,
'FOO BAR');
367 $resource = fopen($fileName,
'wb+');
379 $this->testFilesToDelete[] = $fileName;
380 file_put_contents($fileName,
'FOO BAR');
381 $resource = fopen($fileName,
'r');
384 $this->expectException(\RuntimeException::class);
385 $this->expectExceptionCode(1436717292);
395 $this->testFilesToDelete[] = $fileName;
396 file_put_contents($fileName,
'FOO BAR');
397 $resource = fopen($fileName,
'r');
399 while (!feof($resource)) {
400 fread($resource, 4096);
411 $this->testFilesToDelete[] = $fileName;
412 file_put_contents($fileName,
'FOO BAR');
413 $resource = fopen($fileName,
'w');
423 $fileName = tempnam(sys_get_temp_dir(),
'PHLY');
424 $this->testFilesToDelete[] = $fileName;
432 'array' => [[fopen($fileName,
'r+')]],
433 'object' => [(object)[
'resource' => fopen($fileName,
'r+')]],
443 $this->expectException(\InvalidArgumentException::class);
444 $this->expectExceptionCode(1436717297);
445 $this->stream->attach($resource);
453 $this->expectException(\InvalidArgumentException::class);
454 $this->expectExceptionCode(1436717296);
455 $this->stream->attach(
'foo-bar-baz');
465 $this->testFilesToDelete[] = $fileName;
466 $resource = fopen($fileName,
'r+');
467 $this->stream->attach($resource);
469 $r = new \ReflectionProperty($this->stream,
'resource');
470 $r->setAccessible(
true);
471 $test = $r->getValue($this->stream);
472 $this->assertSame($resource, $test);
482 $this->testFilesToDelete[] = $fileName;
483 $this->stream->attach($fileName);
485 $resource = fopen($fileName,
'r+');
486 fwrite($resource,
'FooBar');
488 $this->stream->rewind();
489 $test = (string)$this->stream;
490 $this->assertEquals(
'FooBar', $test);
500 $this->testFilesToDelete[] = $fileName;
501 $resource = fopen($fileName,
'r+');
502 $this->stream->attach($resource);
504 fwrite($resource,
'FooBar');
507 $this->stream->rewind();
508 $test = $this->stream->getContents();
509 $this->assertEquals(
'FooBar', $test);
519 $this->testFilesToDelete[] = $fileName;
520 $resource = fopen($fileName,
'r+');
521 $this->stream->attach($resource);
523 fwrite($resource,
'FooBar');
526 $this->stream->seek(3);
527 $test = $this->stream->getContents();
528 $this->assertEquals(
'Bar', $test);
538 $this->testFilesToDelete[] = $fileName;
539 $resource = fopen($fileName,
'r+');
540 $this->stream->attach($resource);
542 $expected = stream_get_meta_data($resource);
543 $test = $this->stream->getMetadata();
545 $this->assertEquals($expected, $test);
555 $this->testFilesToDelete[] = $fileName;
556 $resource = fopen($fileName,
'r+');
557 $this->stream->attach($resource);
559 $metadata = stream_get_meta_data($resource);
560 $expected = $metadata[
'uri'];
562 $test = $this->stream->getMetadata(
'uri');
564 $this->assertEquals($expected, $test);
574 $this->testFilesToDelete[] = $fileName;
575 $resource = fopen($fileName,
'r+');
576 $this->stream->attach($resource);
578 $this->assertNull($this->stream->getMetadata(
'TOTALLY_MADE_UP'));
586 $resource = fopen(__FILE__,
'r');
587 $expected = fstat($resource);