public function testStreamSetterWrapsValue()
 {
     $simple1 = new Simple();
     $simple2 = new Simple();
     $handle = fopen('php://temp', 'w+');
     fwrite($handle, 'foo');
     $simple1->setBytes("bar");
     $simple2->setBytes($handle);
     $this->assertInstanceOf('Protobuf\\Stream', $simple1->getBytes());
     $this->assertInstanceOf('Protobuf\\Stream', $simple2->getBytes());
     $this->assertEquals('bar', (string) $simple1->getBytes());
     $this->assertEquals('foo', (string) $simple2->getBytes());
 }
 public function testSimpleSerializedSize()
 {
     $simple = new Simple();
     $calculator = $this->getMock(SizeCalculator::CLASS, [], [], '', false);
     $context = $this->getMock(ComputeSizeContext::CLASS, [], [], '', false);
     $simple->setBool(true);
     $simple->setBytes("bar");
     $simple->setString("foo");
     $simple->setFloat(12345.123);
     $simple->setUint32(123456789);
     $simple->setInt32(-123456789);
     $simple->setFixed32(123456789);
     $simple->setSint32(-123456789);
     $simple->setSfixed32(-123456789);
     $simple->setDouble(123456789.12345);
     $simple->setInt64(-123456789123456789);
     $simple->setUint64(123456789123456789);
     $simple->setFixed64(123456789123456789);
     $simple->setSint64(-123456789123456789);
     $simple->setSfixed64(-123456789123456789);
     $context->expects($this->once())->method('getSizeCalculator')->willReturn($calculator);
     $calculator->expects($this->exactly(4))->method('computeVarintSize')->will($this->returnValueMap([[-123456789123456789, 10], [123456789123456789, 9], [-123456789, 10], [123456789, 4]]));
     $calculator->expects($this->once())->method('computeStringSize')->with('foo')->willReturn(3);
     $calculator->expects($this->once())->method('computeByteStreamSize')->with('bar')->willReturn(3);
     $calculator->expects($this->once())->method('computeZigzag32Size')->with(-123456789)->willReturn(4);
     $calculator->expects($this->once())->method('computeZigzag64Size')->with(-123456789123456789)->willReturn(9);
     $simple->serializedSize($context);
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage Argument 1 passed to ProtobufCompilerTest\Protos\Simple::merge must be a ProtobufCompilerTest\Protos\Simple, ProtobufCompilerTest\Protos\Person given
  */
 public function testMergeException()
 {
     $simple = new Simple();
     $person = new Person();
     $simple->merge($person);
 }
 public function testSimpleMessageClear()
 {
     $simple = new Simple();
     $simple->setBool(true);
     $simple->setString("foo");
     $simple->setFloat(12345.123);
     $simple->setUint32(123456789);
     $simple->setInt32(-123456789);
     $simple->setFixed32(123456789);
     $simple->setSint32(-123456789);
     $simple->setSfixed32(-123456789);
     $simple->setDouble(123456789.12345);
     $simple->setInt64(-123456789123456789);
     $simple->setUint64(123456789123456789);
     $simple->setFixed64(123456789123456789);
     $simple->setSint64(-123456789123456789);
     $simple->setBytes(Stream::wrap("bar"));
     $simple->setSfixed64(-123456789123456789);
     $this->assertSame(true, $simple->getBool());
     $this->assertSame("foo", $simple->getString());
     $this->assertSame(12345.123, $simple->getFloat());
     $this->assertSame(123456789, $simple->getUint32());
     $this->assertSame(-123456789, $simple->getInt32());
     $this->assertSame(123456789, $simple->getFixed32());
     $this->assertSame(-123456789, $simple->getSint32());
     $this->assertSame(-123456789, $simple->getSfixed32());
     $this->assertSame(123456789.12345, $simple->getDouble());
     $this->assertSame(-123456789123456789, $simple->getInt64());
     $this->assertSame(123456789123456789, $simple->getUint64());
     $this->assertSame(123456789123456789, $simple->getFixed64());
     $this->assertSame(-123456789123456789, $simple->getSint64());
     $this->assertSame(-123456789123456789, $simple->getSfixed64());
     $this->assertInstanceOf('Protobuf\\Stream', $simple->getBytes());
     $simple->clear();
     $this->assertNull($simple->getBool());
     $this->assertNull($simple->getString());
     $this->assertNull($simple->getFloat());
     $this->assertNull($simple->getUint32());
     $this->assertNull($simple->getInt32());
     $this->assertNull($simple->getFixed32());
     $this->assertNull($simple->getSint32());
     $this->assertNull($simple->getSfixed32());
     $this->assertNull($simple->getDouble());
     $this->assertNull($simple->getInt64());
     $this->assertNull($simple->getUint64());
     $this->assertNull($simple->getFixed64());
     $this->assertNull($simple->getSint64());
     $this->assertNull($simple->getSfixed64());
     $this->assertNull($simple->getBytes());
 }