public function testOneofField() { $m = new TestMessage(); $m->setOneofInt32(1); $this->assertSame(1, $m->getOneofInt32()); $this->assertSame(0.0, $m->getOneofFloat()); $this->assertSame('', $m->getOneofString()); $this->assertSame(NULL, $m->getOneofMessage()); $m->setOneofFloat(2.0); $this->assertSame(0, $m->getOneofInt32()); $this->assertSame(2.0, $m->getOneofFloat()); $this->assertSame('', $m->getOneofString()); $this->assertSame(NULL, $m->getOneofMessage()); $m->setOneofString('abc'); $this->assertSame(0, $m->getOneofInt32()); $this->assertSame(0.0, $m->getOneofFloat()); $this->assertSame('abc', $m->getOneofString()); $this->assertSame(NULL, $m->getOneofMessage()); $sub_m = new TestMessage_Sub(); $sub_m->setA(1); $m->setOneofMessage($sub_m); $this->assertSame(0, $m->getOneofInt32()); $this->assertSame(0.0, $m->getOneofFloat()); $this->assertSame('', $m->getOneofString()); $this->assertSame(1, $m->getOneofMessage()->getA()); }
TestUtil::setTestMessage($from); TestUtil::assertTestMessage($from); $data = $from->encode(); $to = new TestMessage(); $to->decode($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->encode(); $n = new TestMessage(); $n->decode($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->encode(); $n = new TestMessage(); $n->decode($data); assert(2.0 === $n->getOneofFloat()); $m->setOneofString('abc');