Author: Chris Corbyn
Inheritance: implements Swift_CharacterStream
 private static function _initializeMaps()
 {
     if (!isset(self::$_charMap)) {
         self::$_charMap = array();
         for ($byte = 0; $byte < 256; ++$byte) {
             self::$_charMap[$byte] = chr($byte);
         }
         self::$_byteMap = array_flip(self::$_charMap);
     }
 }
 public function testAlgorithmWithFixedWidthCharsets()
 {
     $reader = $this->_getReader();
     $factory = $this->_getFactory($reader);
     $seq = $this->_mockery()->sequence('read-chars');
     $this->_checking(Expectations::create()->ignoring($reader)->getInitialByteSize()->returns(2)->one($reader)->validateByteSequence(array(0xd1, 0x8d), 2)->inSequence($seq)->one($reader)->validateByteSequence(array(0xd0, 0xbb), 2)->inSequence($seq)->one($reader)->validateByteSequence(array(0xd0, 0xb0), 2)->inSequence($seq));
     $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8');
     $stream->importString(pack('C*', 0xd1, 0x8d, 0xd0, 0xbb, 0xd0, 0xb0));
     $this->assertIdenticalBinary(pack('C*', 0xd1, 0x8d), $stream->read(1));
     $this->assertIdenticalBinary(pack('C*', 0xd0, 0xbb), $stream->read(1));
     $this->assertIdenticalBinary(pack('C*', 0xd0, 0xb0), $stream->read(1));
     $this->assertIdentical(false, $stream->read(1));
 }
 public function testAlgorithmWithFixedWidthCharsets()
 {
     $reader = $this->_getReader();
     $factory = $this->_getFactory($reader);
     $reader->shouldReceive('getInitialByteSize')->zeroOrMoreTimes()->andReturn(2);
     $reader->shouldReceive('validateByteSequence')->once()->with(array(0xd1, 0x8d), 2);
     $reader->shouldReceive('validateByteSequence')->once()->with(array(0xd0, 0xbb), 2);
     $reader->shouldReceive('validateByteSequence')->once()->with(array(0xd0, 0xb0), 2);
     $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8');
     $stream->importString(pack('C*', 0xd1, 0x8d, 0xd0, 0xbb, 0xd0, 0xb0));
     $this->assertIdenticalBinary(pack('C*', 0xd1, 0x8d), $stream->read(1));
     $this->assertIdenticalBinary(pack('C*', 0xd0, 0xbb), $stream->read(1));
     $this->assertIdenticalBinary(pack('C*', 0xd0, 0xb0), $stream->read(1));
     $this->assertSame(false, $stream->read(1));
 }