Index: third_party/protobuf/php/tests/encode_decode_test.php |
diff --git a/third_party/protobuf/php/tests/encode_decode_test.php b/third_party/protobuf/php/tests/encode_decode_test.php |
new file mode 100644 |
index 0000000000000000000000000000000000000000..af9c04154d83e98a3e191ea512acdb4cf9b14947 |
--- /dev/null |
+++ b/third_party/protobuf/php/tests/encode_decode_test.php |
@@ -0,0 +1,135 @@ |
+<?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); |
+ } |
+} |