fail(); } catch (Exception $e) { $this->assertType('Zend_Log_Exception', $e); $this->assertRegExp('/not a stream/i', $e->getMessage()); } xml_parser_free($resource); } public function testConstructorWithValidStream() { $stream = fopen('php://memory', 'w+'); new Zend_Log_Writer_Stream($stream); } public function testConstructorWithValidUrl() { new Zend_Log_Writer_Stream('php://memory'); } public function testConstructorThrowsWhenModeSpecifiedForExistingStream() { $stream = fopen('php://memory', 'w+'); try { new Zend_Log_Writer_Stream($stream, 'w+'); $this->fail(); } catch (Exception $e) { $this->assertType('Zend_Log_Exception', $e); $this->assertRegExp('/existing stream/i', $e->getMessage()); } } public function testConstructorThrowsWhenStreamCannotBeOpened() { try { new Zend_Log_Writer_Stream(''); $this->fail(); } catch (Exception $e) { $this->assertType('Zend_Log_Exception', $e); $this->assertRegExp('/cannot be opened/i', $e->getMessage()); } } public function testWrite() { $stream = fopen('php://memory', 'w+'); $fields = array('message' => 'message-to-log'); $writer = new Zend_Log_Writer_Stream($stream); $writer->write($fields); rewind($stream); $contents = stream_get_contents($stream); fclose($stream); $this->assertContains($fields['message'], $contents); } public function testWriteThrowsWhenStreamWriteFails() { $stream = fopen('php://memory', 'w+'); $writer = new Zend_Log_Writer_Stream($stream); fclose($stream); try { $writer->write(array('message' => 'foo')); $this->fail(); } catch (Exception $e) { $this->assertType('Zend_Log_Exception', $e); $this->assertRegExp('/unable to write/i', $e->getMessage()); } } public function testShutdownClosesStreamResource() { $writer = new Zend_Log_Writer_Stream('php://memory', 'w+'); $writer->write(array('message' => 'this write should succeed')); $writer->shutdown(); try { $writer->write(array('message' => 'this write should fail')); $this->fail(); } catch (Exception $e) { $this->assertType('Zend_Log_Exception', $e); $this->assertRegExp('/unable to write/i', $e->getMessage()); } } public function testSettingNewFormatter() { $stream = fopen('php://memory', 'w+'); $writer = new Zend_Log_Writer_Stream($stream); $expected = 'foo'; $formatter = new Zend_Log_Formatter_Simple($expected); $writer->setFormatter($formatter); $writer->write(array('bar'=>'baz')); rewind($stream); $contents = stream_get_contents($stream); fclose($stream); $this->assertContains($expected, $contents); } }