public function testRemovesReadDataFromBuffer() { $b = new BufferStream(); $this->assertEquals(3, $b->write('foo')); $this->assertEquals(3, $b->getSize()); $this->assertFalse($b->eof()); $this->assertEquals('foo', $b->read(10)); $this->assertTrue($b->eof()); $this->assertEquals('', $b->read(10)); }
public function testBeginsDroppingWhenSizeExceeded() { $stream = new BufferStream(); $drop = new DroppingStream($stream, 5); $this->assertEquals(3, $drop->write('hel')); $this->assertEquals(2, $drop->write('lo')); $this->assertEquals(5, $drop->getSize()); $this->assertEquals('hello', $drop->read(5)); $this->assertEquals(0, $drop->getSize()); $drop->write('12345678910'); $this->assertEquals(5, $stream->getSize()); $this->assertEquals(5, $drop->getSize()); $this->assertEquals('12345', (string) $drop); $this->assertEquals(0, $drop->getSize()); $drop->write('hello'); $this->assertSame(0, $drop->write('test')); }