| <?php |
| |
| require_once('test.pb.php'); |
| require_once('test_base.php'); |
| require_once('test_util.php'); |
| |
| use Google\Protobuf\RepeatedField; |
| use Google\Protobuf\GPBType; |
| use Foo\TestEnum; |
| use Foo\TestMessage; |
| use Foo\TestMessage_Sub; |
| use Foo\TestPackedMessage; |
| use Foo\TestUnpackedMessage; |
| |
| class EncodeDecodeTest extends TestBase |
| { |
| |
| public function testEncode() |
| { |
| $from = new TestMessage(); |
| $this->expectEmptyFields($from); |
| $this->setFields($from); |
| $this->expectFields($from); |
| |
| $data = $from->encode(); |
| $this->assertSame(TestUtil::getGoldenTestMessage(), $data); |
| } |
| |
| public function testDecode() |
| { |
| $to = new TestMessage(); |
| $to->decode(TestUtil::getGoldenTestMessage()); |
| $this->expectFields($to); |
| } |
| |
| public function testEncodeDecode() |
| { |
| $from = new TestMessage(); |
| $this->expectEmptyFields($from); |
| $this->setFields($from); |
| $this->expectFields($from); |
| |
| $data = $from->encode(); |
| |
| $to = new TestMessage(); |
| $to->decode($data); |
| $this->expectFields($to); |
| } |
| |
| public function testEncodeDecodeEmpty() |
| { |
| $from = new TestMessage(); |
| $this->expectEmptyFields($from); |
| |
| $data = $from->encode(); |
| |
| $to = new TestMessage(); |
| $to->decode($data); |
| $this->expectEmptyFields($to); |
| } |
| |
| public function testEncodeDecodeOneof() |
| { |
| $m = new TestMessage(); |
| |
| $m->setOneofInt32(1); |
| $data = $m->encode(); |
| $n = new TestMessage(); |
| $n->decode($data); |
| $this->assertSame(1, $n->getOneofInt32()); |
| |
| $m->setOneofFloat(2.0); |
| $data = $m->encode(); |
| $n = new TestMessage(); |
| $n->decode($data); |
| $this->assertSame(2.0, $n->getOneofFloat()); |
| |
| $m->setOneofString('abc'); |
| $data = $m->encode(); |
| $n = new TestMessage(); |
| $n->decode($data); |
| $this->assertSame('abc', $n->getOneofString()); |
| |
| $sub_m = new TestMessage_Sub(); |
| $sub_m->setA(1); |
| $m->setOneofMessage($sub_m); |
| $data = $m->encode(); |
| $n = new TestMessage(); |
| $n->decode($data); |
| $this->assertSame(1, $n->getOneofMessage()->getA()); |
| } |
| |
| public function testPackedEncode() |
| { |
| $from = new TestPackedMessage(); |
| TestUtil::setTestPackedMessage($from); |
| $this->assertSame(TestUtil::getGoldenTestPackedMessage(), |
| $from->encode()); |
| } |
| |
| public function testPackedDecodePacked() |
| { |
| $to = new TestPackedMessage(); |
| $to->decode(TestUtil::getGoldenTestPackedMessage()); |
| TestUtil::assertTestPackedMessage($to); |
| } |
| |
| public function testPackedDecodeUnpacked() |
| { |
| $to = new TestPackedMessage(); |
| $to->decode(TestUtil::getGoldenTestUnpackedMessage()); |
| TestUtil::assertTestPackedMessage($to); |
| } |
| |
| public function testUnpackedEncode() |
| { |
| $from = new TestUnpackedMessage(); |
| TestUtil::setTestPackedMessage($from); |
| $this->assertSame(TestUtil::getGoldenTestUnpackedMessage(), |
| $from->encode()); |
| } |
| |
| public function testUnpackedDecodePacked() |
| { |
| $to = new TestUnpackedMessage(); |
| $to->decode(TestUtil::getGoldenTestPackedMessage()); |
| TestUtil::assertTestPackedMessage($to); |
| } |
| |
| public function testUnpackedDecodeUnpacked() |
| { |
| $to = new TestUnpackedMessage(); |
| $to->decode(TestUtil::getGoldenTestUnpackedMessage()); |
| TestUtil::assertTestPackedMessage($to); |
| } |
| } |