serializeToString(); $to = new TestMessage(); $to->mergeFromString($data); TestUtil::assertTestMessage($to); $from->setRecursive($from); $arr = new RepeatedField(GPBType::MESSAGE, TestMessage::class); $arr[] = new TestMessage; $arr[0]->SetRepeatedRecursive($arr); // Test oneof fields. $m = new TestMessage(); $m->setOneofInt32(1); assert(1 === $m->getOneofInt32()); assert(0.0 === $m->getOneofFloat()); assert('' === $m->getOneofString()); assert(NULL === $m->getOneofMessage()); $data = $m->serializeToString(); $n = new TestMessage(); $n->mergeFromString($data); assert(1 === $n->getOneofInt32()); $m->setOneofFloat(2.0); assert(0 === $m->getOneofInt32()); assert(2.0 === $m->getOneofFloat()); assert('' === $m->getOneofString()); assert(NULL === $m->getOneofMessage()); $data = $m->serializeToString(); $n = new TestMessage(); $n->mergeFromString($data); assert(2.0 === $n->getOneofFloat()); $m->setOneofString('abc'); assert(0 === $m->getOneofInt32()); assert(0.0 === $m->getOneofFloat()); assert('abc' === $m->getOneofString()); assert(NULL === $m->getOneofMessage()); $data = $m->serializeToString(); $n = new TestMessage(); $n->mergeFromString($data); assert('abc' === $n->getOneofString()); $sub_m = new TestMessage_Sub(); $sub_m->setA(1); $m->setOneofMessage($sub_m); assert(0 === $m->getOneofInt32()); assert(0.0 === $m->getOneofFloat()); assert('' === $m->getOneofString()); assert(1 === $m->getOneofMessage()->getA()); $data = $m->serializeToString(); $n = new TestMessage(); $n->mergeFromString($data); assert(1 === $n->getOneofMessage()->getA()); $m = new TestMessage(); $m->mergeFromString(hex2bin('F80601')); assert('F80601', bin2hex($m->serializeToString())); # $from = new TestMessage(); # $to = new TestMessage(); # TestUtil::setTestMessage($from); # $to->mergeFrom($from); # TestUtil::assertTestMessage($to);