1*1b3f573fSAndroid Build Coastguard Worker<?php 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Workerrequire_once('test_base.php'); 4*1b3f573fSAndroid Build Coastguard Workerrequire_once('test_util.php'); 5*1b3f573fSAndroid Build Coastguard Worker 6*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\RepeatedField; 7*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\MapField; 8*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\GPBType; 9*1b3f573fSAndroid Build Coastguard Workeruse Bar\TestLegacyMessage; 10*1b3f573fSAndroid Build Coastguard Workeruse Bar\TestLegacyMessage_NestedEnum; 11*1b3f573fSAndroid Build Coastguard Workeruse Bar\TestLegacyMessage_NestedMessage; 12*1b3f573fSAndroid Build Coastguard Workeruse Foo\Test32Fields; 13*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestEnum; 14*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestIncludeNamespaceMessage; 15*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestIncludePrefixMessage; 16*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestMessage; 17*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestMessage\Sub; 18*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestMessage_Sub; 19*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestMessage\NestedEnum; 20*1b3f573fSAndroid Build Coastguard Workeruse Foo\TestReverseFieldOrder; 21*1b3f573fSAndroid Build Coastguard Workeruse Foo\testLowerCaseMessage; 22*1b3f573fSAndroid Build Coastguard Workeruse Foo\testLowerCaseEnum; 23*1b3f573fSAndroid Build Coastguard Workeruse PBEmpty\PBEcho\TestEmptyPackage; 24*1b3f573fSAndroid Build Coastguard Workeruse Php\Test\TestNamespace; 25*1b3f573fSAndroid Build Coastguard Worker 26*1b3f573fSAndroid Build Coastguard Worker# This is not allowed, but we at least shouldn't crash. 27*1b3f573fSAndroid Build Coastguard Workerclass C extends \Google\Protobuf\Internal\Message { 28*1b3f573fSAndroid Build Coastguard Worker public function __construct($data = null) { 29*1b3f573fSAndroid Build Coastguard Worker parent::__construct($data); 30*1b3f573fSAndroid Build Coastguard Worker } 31*1b3f573fSAndroid Build Coastguard Worker} 32*1b3f573fSAndroid Build Coastguard Worker 33*1b3f573fSAndroid Build Coastguard Workerclass GeneratedClassTest extends TestBase 34*1b3f573fSAndroid Build Coastguard Worker{ 35*1b3f573fSAndroid Build Coastguard Worker 36*1b3f573fSAndroid Build Coastguard Worker ######################################################### 37*1b3f573fSAndroid Build Coastguard Worker # Test field accessors. 38*1b3f573fSAndroid Build Coastguard Worker ######################################################### 39*1b3f573fSAndroid Build Coastguard Worker 40*1b3f573fSAndroid Build Coastguard Worker public function testSetterGetter() 41*1b3f573fSAndroid Build Coastguard Worker { 42*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 43*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(1); 44*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalInt32()); 45*1b3f573fSAndroid Build Coastguard Worker } 46*1b3f573fSAndroid Build Coastguard Worker 47*1b3f573fSAndroid Build Coastguard Worker ######################################################### 48*1b3f573fSAndroid Build Coastguard Worker # Test int32 field. 49*1b3f573fSAndroid Build Coastguard Worker ######################################################### 50*1b3f573fSAndroid Build Coastguard Worker 51*1b3f573fSAndroid Build Coastguard Worker public function testInt32Field() 52*1b3f573fSAndroid Build Coastguard Worker { 53*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 54*1b3f573fSAndroid Build Coastguard Worker 55*1b3f573fSAndroid Build Coastguard Worker // Set integer. 56*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(MAX_INT32); 57*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT32, $m->getOptionalInt32()); 58*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(MIN_INT32); 59*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT32, $m->getOptionalInt32()); 60*1b3f573fSAndroid Build Coastguard Worker 61*1b3f573fSAndroid Build Coastguard Worker // Set float. 62*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(1.1); 63*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalInt32()); 64*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(MAX_INT32_FLOAT); 65*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT32, $m->getOptionalInt32()); 66*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(MIN_INT32_FLOAT); 67*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT32, $m->getOptionalInt32()); 68*1b3f573fSAndroid Build Coastguard Worker 69*1b3f573fSAndroid Build Coastguard Worker // Set string. 70*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32('2'); 71*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, $m->getOptionalInt32()); 72*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32('3.1'); 73*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, $m->getOptionalInt32()); 74*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(MAX_INT32_STRING); 75*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT32, $m->getOptionalInt32()); 76*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32(MIN_INT32_STRING); 77*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT32, $m->getOptionalInt32()); 78*1b3f573fSAndroid Build Coastguard Worker } 79*1b3f573fSAndroid Build Coastguard Worker 80*1b3f573fSAndroid Build Coastguard Worker ######################################################### 81*1b3f573fSAndroid Build Coastguard Worker # Test deprecated int32 field. 82*1b3f573fSAndroid Build Coastguard Worker ######################################################### 83*1b3f573fSAndroid Build Coastguard Worker 84*1b3f573fSAndroid Build Coastguard Worker public function testDeprecatedInt32Field() 85*1b3f573fSAndroid Build Coastguard Worker { 86*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 87*1b3f573fSAndroid Build Coastguard Worker 88*1b3f573fSAndroid Build Coastguard Worker // temporarily change error handler to capture the deprecated errors 89*1b3f573fSAndroid Build Coastguard Worker $deprecationCount = 0; 90*1b3f573fSAndroid Build Coastguard Worker set_error_handler(function ($errno, $errstr) use (&$deprecationCount) { 91*1b3f573fSAndroid Build Coastguard Worker if ($errstr === 'deprecated_optional_int32 is deprecated.') { 92*1b3f573fSAndroid Build Coastguard Worker $deprecationCount++; 93*1b3f573fSAndroid Build Coastguard Worker } 94*1b3f573fSAndroid Build Coastguard Worker }, E_USER_DEPRECATED); 95*1b3f573fSAndroid Build Coastguard Worker 96*1b3f573fSAndroid Build Coastguard Worker // default test set 97*1b3f573fSAndroid Build Coastguard Worker $m->setDeprecatedOptionalInt32(MAX_INT32); 98*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT32, $m->getDeprecatedOptionalInt32()); 99*1b3f573fSAndroid Build Coastguard Worker $m->setDeprecatedOptionalInt32(MIN_INT32); 100*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT32, $m->getDeprecatedOptionalInt32()); 101*1b3f573fSAndroid Build Coastguard Worker 102*1b3f573fSAndroid Build Coastguard Worker restore_error_handler(); 103*1b3f573fSAndroid Build Coastguard Worker 104*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(4, $deprecationCount); 105*1b3f573fSAndroid Build Coastguard Worker } 106*1b3f573fSAndroid Build Coastguard Worker 107*1b3f573fSAndroid Build Coastguard Worker ######################################################### 108*1b3f573fSAndroid Build Coastguard Worker # Test optional int32 field. 109*1b3f573fSAndroid Build Coastguard Worker ######################################################### 110*1b3f573fSAndroid Build Coastguard Worker 111*1b3f573fSAndroid Build Coastguard Worker public function testOptionalInt32Field() 112*1b3f573fSAndroid Build Coastguard Worker { 113*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 114*1b3f573fSAndroid Build Coastguard Worker 115*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasTrueOptionalInt32()); 116*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0, $m->getTrueOptionalInt32()); 117*1b3f573fSAndroid Build Coastguard Worker 118*1b3f573fSAndroid Build Coastguard Worker // Set integer. 119*1b3f573fSAndroid Build Coastguard Worker $m->setTrueOptionalInt32(MAX_INT32); 120*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m->hasTrueOptionalInt32()); 121*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT32, $m->getTrueOptionalInt32()); 122*1b3f573fSAndroid Build Coastguard Worker 123*1b3f573fSAndroid Build Coastguard Worker // Clear integer. 124*1b3f573fSAndroid Build Coastguard Worker $m->clearTrueOptionalInt32(); 125*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasTrueOptionalInt32()); 126*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0, $m->getTrueOptionalInt32()); 127*1b3f573fSAndroid Build Coastguard Worker } 128*1b3f573fSAndroid Build Coastguard Worker 129*1b3f573fSAndroid Build Coastguard Worker ######################################################### 130*1b3f573fSAndroid Build Coastguard Worker # Test uint32 field. 131*1b3f573fSAndroid Build Coastguard Worker ######################################################### 132*1b3f573fSAndroid Build Coastguard Worker 133*1b3f573fSAndroid Build Coastguard Worker public function testUint32Field() 134*1b3f573fSAndroid Build Coastguard Worker { 135*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 136*1b3f573fSAndroid Build Coastguard Worker 137*1b3f573fSAndroid Build Coastguard Worker // Set integer. 138*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(MAX_UINT32); 139*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(-1, $m->getOptionalUint32()); 140*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(-1); 141*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(-1, $m->getOptionalUint32()); 142*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(MIN_UINT32); 143*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT32, $m->getOptionalUint32()); 144*1b3f573fSAndroid Build Coastguard Worker 145*1b3f573fSAndroid Build Coastguard Worker // Set float. 146*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(1.1); 147*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalUint32()); 148*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(MAX_UINT32_FLOAT); 149*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(-1, $m->getOptionalUint32()); 150*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(-1.0); 151*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(-1, $m->getOptionalUint32()); 152*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(MIN_UINT32_FLOAT); 153*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT32, $m->getOptionalUint32()); 154*1b3f573fSAndroid Build Coastguard Worker 155*1b3f573fSAndroid Build Coastguard Worker // Set string. 156*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32('2'); 157*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, $m->getOptionalUint32()); 158*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32('3.1'); 159*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, $m->getOptionalUint32()); 160*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(MAX_UINT32_STRING); 161*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(-1, $m->getOptionalUint32()); 162*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32('-1.0'); 163*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(-1, $m->getOptionalUint32()); 164*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint32(MIN_UINT32_STRING); 165*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT32, $m->getOptionalUint32()); 166*1b3f573fSAndroid Build Coastguard Worker } 167*1b3f573fSAndroid Build Coastguard Worker 168*1b3f573fSAndroid Build Coastguard Worker ######################################################### 169*1b3f573fSAndroid Build Coastguard Worker # Test int64 field. 170*1b3f573fSAndroid Build Coastguard Worker ######################################################### 171*1b3f573fSAndroid Build Coastguard Worker 172*1b3f573fSAndroid Build Coastguard Worker public function testInt64Field() 173*1b3f573fSAndroid Build Coastguard Worker { 174*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 175*1b3f573fSAndroid Build Coastguard Worker 176*1b3f573fSAndroid Build Coastguard Worker // Set integer. 177*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt64(MAX_INT64); 178*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT64, $m->getOptionalInt64()); 179*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt64(MIN_INT64); 180*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(MIN_INT64, $m->getOptionalInt64()); 181*1b3f573fSAndroid Build Coastguard Worker 182*1b3f573fSAndroid Build Coastguard Worker // Set float. 183*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt64(1.1); 184*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 185*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1', $m->getOptionalInt64()); 186*1b3f573fSAndroid Build Coastguard Worker } else { 187*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalInt64()); 188*1b3f573fSAndroid Build Coastguard Worker } 189*1b3f573fSAndroid Build Coastguard Worker 190*1b3f573fSAndroid Build Coastguard Worker // Set string. 191*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt64('2'); 192*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 193*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('2', $m->getOptionalInt64()); 194*1b3f573fSAndroid Build Coastguard Worker } else { 195*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, $m->getOptionalInt64()); 196*1b3f573fSAndroid Build Coastguard Worker } 197*1b3f573fSAndroid Build Coastguard Worker 198*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt64('3.1'); 199*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 200*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('3', $m->getOptionalInt64()); 201*1b3f573fSAndroid Build Coastguard Worker } else { 202*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, $m->getOptionalInt64()); 203*1b3f573fSAndroid Build Coastguard Worker } 204*1b3f573fSAndroid Build Coastguard Worker 205*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt64(MAX_INT64_STRING); 206*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 207*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT64_STRING, $m->getOptionalInt64()); 208*1b3f573fSAndroid Build Coastguard Worker } else { 209*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_INT64, $m->getOptionalInt64()); 210*1b3f573fSAndroid Build Coastguard Worker } 211*1b3f573fSAndroid Build Coastguard Worker 212*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt64(MIN_INT64_STRING); 213*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 214*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT64_STRING, $m->getOptionalInt64()); 215*1b3f573fSAndroid Build Coastguard Worker } else { 216*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MIN_INT64, $m->getOptionalInt64()); 217*1b3f573fSAndroid Build Coastguard Worker } 218*1b3f573fSAndroid Build Coastguard Worker } 219*1b3f573fSAndroid Build Coastguard Worker 220*1b3f573fSAndroid Build Coastguard Worker ######################################################### 221*1b3f573fSAndroid Build Coastguard Worker # Test uint64 field. 222*1b3f573fSAndroid Build Coastguard Worker ######################################################### 223*1b3f573fSAndroid Build Coastguard Worker 224*1b3f573fSAndroid Build Coastguard Worker public function testUint64Field() 225*1b3f573fSAndroid Build Coastguard Worker { 226*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 227*1b3f573fSAndroid Build Coastguard Worker 228*1b3f573fSAndroid Build Coastguard Worker // Set integer. 229*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint64(MAX_UINT64); 230*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 231*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_UINT64_STRING, $m->getOptionalUint64()); 232*1b3f573fSAndroid Build Coastguard Worker } else { 233*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_UINT64, $m->getOptionalUint64()); 234*1b3f573fSAndroid Build Coastguard Worker } 235*1b3f573fSAndroid Build Coastguard Worker 236*1b3f573fSAndroid Build Coastguard Worker // Set float. 237*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint64(1.1); 238*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 239*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1', $m->getOptionalUint64()); 240*1b3f573fSAndroid Build Coastguard Worker } else { 241*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalUint64()); 242*1b3f573fSAndroid Build Coastguard Worker } 243*1b3f573fSAndroid Build Coastguard Worker 244*1b3f573fSAndroid Build Coastguard Worker // Set string. 245*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint64('2'); 246*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 247*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('2', $m->getOptionalUint64()); 248*1b3f573fSAndroid Build Coastguard Worker } else { 249*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, $m->getOptionalUint64()); 250*1b3f573fSAndroid Build Coastguard Worker } 251*1b3f573fSAndroid Build Coastguard Worker 252*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint64('3.1'); 253*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 254*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('3', $m->getOptionalUint64()); 255*1b3f573fSAndroid Build Coastguard Worker } else { 256*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, $m->getOptionalUint64()); 257*1b3f573fSAndroid Build Coastguard Worker } 258*1b3f573fSAndroid Build Coastguard Worker 259*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalUint64(MAX_UINT64_STRING); 260*1b3f573fSAndroid Build Coastguard Worker if (PHP_INT_SIZE == 4) { 261*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_UINT64_STRING, $m->getOptionalUint64()); 262*1b3f573fSAndroid Build Coastguard Worker } else { 263*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(MAX_UINT64, $m->getOptionalUint64()); 264*1b3f573fSAndroid Build Coastguard Worker } 265*1b3f573fSAndroid Build Coastguard Worker } 266*1b3f573fSAndroid Build Coastguard Worker 267*1b3f573fSAndroid Build Coastguard Worker ######################################################### 268*1b3f573fSAndroid Build Coastguard Worker # Test enum field. 269*1b3f573fSAndroid Build Coastguard Worker ######################################################### 270*1b3f573fSAndroid Build Coastguard Worker 271*1b3f573fSAndroid Build Coastguard Worker public function testEnumField() 272*1b3f573fSAndroid Build Coastguard Worker { 273*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 274*1b3f573fSAndroid Build Coastguard Worker 275*1b3f573fSAndroid Build Coastguard Worker // Set enum. 276*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalEnum(TestEnum::ONE); 277*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(TestEnum::ONE, $m->getOptionalEnum()); 278*1b3f573fSAndroid Build Coastguard Worker 279*1b3f573fSAndroid Build Coastguard Worker // Set integer. 280*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalEnum(1); 281*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(TestEnum::ONE, $m->getOptionalEnum()); 282*1b3f573fSAndroid Build Coastguard Worker 283*1b3f573fSAndroid Build Coastguard Worker // Set float. 284*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalEnum(1.1); 285*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(TestEnum::ONE, $m->getOptionalEnum()); 286*1b3f573fSAndroid Build Coastguard Worker 287*1b3f573fSAndroid Build Coastguard Worker // Set string. 288*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalEnum("1"); 289*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(TestEnum::ONE, $m->getOptionalEnum()); 290*1b3f573fSAndroid Build Coastguard Worker 291*1b3f573fSAndroid Build Coastguard Worker // Test Enum methods 292*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals('ONE', TestEnum::name(1)); 293*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(1, TestEnum::value('ONE')); 294*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals('ECHO', TestEnum::name(3)); 295*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(3, TestEnum::value('ECHO')); 296*1b3f573fSAndroid Build Coastguard Worker // Backwards compat value lookup by prefixed-name. 297*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(3, TestEnum::value('PBECHO')); 298*1b3f573fSAndroid Build Coastguard Worker } 299*1b3f573fSAndroid Build Coastguard Worker 300*1b3f573fSAndroid Build Coastguard Worker public function testInvalidEnumValueThrowsException() 301*1b3f573fSAndroid Build Coastguard Worker { 302*1b3f573fSAndroid Build Coastguard Worker $this->expectException(UnexpectedValueException::class); 303*1b3f573fSAndroid Build Coastguard Worker $this->expectExceptionMessage( 304*1b3f573fSAndroid Build Coastguard Worker 'Enum Foo\TestEnum has no name defined for value -1'); 305*1b3f573fSAndroid Build Coastguard Worker 306*1b3f573fSAndroid Build Coastguard Worker TestEnum::name(-1); 307*1b3f573fSAndroid Build Coastguard Worker } 308*1b3f573fSAndroid Build Coastguard Worker 309*1b3f573fSAndroid Build Coastguard Worker public function testInvalidEnumNameThrowsException() 310*1b3f573fSAndroid Build Coastguard Worker { 311*1b3f573fSAndroid Build Coastguard Worker $this->expectException(UnexpectedValueException::class); 312*1b3f573fSAndroid Build Coastguard Worker $this->expectExceptionMessage( 313*1b3f573fSAndroid Build Coastguard Worker 'Enum Foo\TestEnum has no value defined for name DOES_NOT_EXIST'); 314*1b3f573fSAndroid Build Coastguard Worker 315*1b3f573fSAndroid Build Coastguard Worker TestEnum::value('DOES_NOT_EXIST'); 316*1b3f573fSAndroid Build Coastguard Worker } 317*1b3f573fSAndroid Build Coastguard Worker 318*1b3f573fSAndroid Build Coastguard Worker public function testNestedEnum() 319*1b3f573fSAndroid Build Coastguard Worker { 320*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 321*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalNestedEnum(NestedEnum::ZERO); 322*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 323*1b3f573fSAndroid Build Coastguard Worker } 324*1b3f573fSAndroid Build Coastguard Worker 325*1b3f573fSAndroid Build Coastguard Worker public function testLegacyNestedEnum() 326*1b3f573fSAndroid Build Coastguard Worker { 327*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 328*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalNestedEnum(\Foo\TestMessage_NestedEnum::ZERO); 329*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 330*1b3f573fSAndroid Build Coastguard Worker } 331*1b3f573fSAndroid Build Coastguard Worker 332*1b3f573fSAndroid Build Coastguard Worker public function testLegacyTypehintWithNestedEnums() 333*1b3f573fSAndroid Build Coastguard Worker { 334*1b3f573fSAndroid Build Coastguard Worker $this->legacyEnum(new TestLegacyMessage\NestedEnum); 335*1b3f573fSAndroid Build Coastguard Worker } 336*1b3f573fSAndroid Build Coastguard Worker 337*1b3f573fSAndroid Build Coastguard Worker public function testLegacyReadOnlyMessage() 338*1b3f573fSAndroid Build Coastguard Worker { 339*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(class_exists('\Upper\READONLY')); 340*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(class_exists('\Lower\readonly')); 341*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(class_exists('\Php\Test\TestNamespace\PBEmpty\ReadOnly')); 342*1b3f573fSAndroid Build Coastguard Worker } 343*1b3f573fSAndroid Build Coastguard Worker 344*1b3f573fSAndroid Build Coastguard Worker public function testLegacyReadOnlyEnum() 345*1b3f573fSAndroid Build Coastguard Worker { 346*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(class_exists('\Upper_enum\READONLY')); 347*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(class_exists('\Lower_enum\readonly')); 348*1b3f573fSAndroid Build Coastguard Worker } 349*1b3f573fSAndroid Build Coastguard Worker 350*1b3f573fSAndroid Build Coastguard Worker private function legacyEnum(TestLegacyMessage_NestedEnum $enum) 351*1b3f573fSAndroid Build Coastguard Worker { 352*1b3f573fSAndroid Build Coastguard Worker // If we made it here without a PHP Fatal error, the typehint worked 353*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 354*1b3f573fSAndroid Build Coastguard Worker } 355*1b3f573fSAndroid Build Coastguard Worker 356*1b3f573fSAndroid Build Coastguard Worker ######################################################### 357*1b3f573fSAndroid Build Coastguard Worker # Test float field. 358*1b3f573fSAndroid Build Coastguard Worker ######################################################### 359*1b3f573fSAndroid Build Coastguard Worker 360*1b3f573fSAndroid Build Coastguard Worker public function testFloatField() 361*1b3f573fSAndroid Build Coastguard Worker { 362*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 363*1b3f573fSAndroid Build Coastguard Worker 364*1b3f573fSAndroid Build Coastguard Worker // Set integer. 365*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalFloat(1); 366*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(1.0, $m->getOptionalFloat(), MAX_FLOAT_DIFF); 367*1b3f573fSAndroid Build Coastguard Worker 368*1b3f573fSAndroid Build Coastguard Worker // Set float. 369*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalFloat(1.1); 370*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(1.1, $m->getOptionalFloat(), MAX_FLOAT_DIFF); 371*1b3f573fSAndroid Build Coastguard Worker 372*1b3f573fSAndroid Build Coastguard Worker // Set string. 373*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalFloat('2'); 374*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(2.0, $m->getOptionalFloat(), MAX_FLOAT_DIFF); 375*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalFloat('3.1'); 376*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(3.1, $m->getOptionalFloat(), MAX_FLOAT_DIFF); 377*1b3f573fSAndroid Build Coastguard Worker } 378*1b3f573fSAndroid Build Coastguard Worker 379*1b3f573fSAndroid Build Coastguard Worker ######################################################### 380*1b3f573fSAndroid Build Coastguard Worker # Test double field. 381*1b3f573fSAndroid Build Coastguard Worker ######################################################### 382*1b3f573fSAndroid Build Coastguard Worker 383*1b3f573fSAndroid Build Coastguard Worker public function testDoubleField() 384*1b3f573fSAndroid Build Coastguard Worker { 385*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 386*1b3f573fSAndroid Build Coastguard Worker 387*1b3f573fSAndroid Build Coastguard Worker // Set integer. 388*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalDouble(1); 389*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(1.0, $m->getOptionalDouble(), MAX_FLOAT_DIFF); 390*1b3f573fSAndroid Build Coastguard Worker 391*1b3f573fSAndroid Build Coastguard Worker // Set float. 392*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalDouble(1.1); 393*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(1.1, $m->getOptionalDouble(), MAX_FLOAT_DIFF); 394*1b3f573fSAndroid Build Coastguard Worker 395*1b3f573fSAndroid Build Coastguard Worker // Set string. 396*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalDouble('2'); 397*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(2.0, $m->getOptionalDouble(), MAX_FLOAT_DIFF); 398*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalDouble('3.1'); 399*1b3f573fSAndroid Build Coastguard Worker $this->assertFloatEquals(3.1, $m->getOptionalDouble(), MAX_FLOAT_DIFF); 400*1b3f573fSAndroid Build Coastguard Worker } 401*1b3f573fSAndroid Build Coastguard Worker 402*1b3f573fSAndroid Build Coastguard Worker ######################################################### 403*1b3f573fSAndroid Build Coastguard Worker # Test bool field. 404*1b3f573fSAndroid Build Coastguard Worker ######################################################### 405*1b3f573fSAndroid Build Coastguard Worker 406*1b3f573fSAndroid Build Coastguard Worker public function testBoolField() 407*1b3f573fSAndroid Build Coastguard Worker { 408*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 409*1b3f573fSAndroid Build Coastguard Worker 410*1b3f573fSAndroid Build Coastguard Worker // Set bool. 411*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBool(true); 412*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(true, $m->getOptionalBool()); 413*1b3f573fSAndroid Build Coastguard Worker 414*1b3f573fSAndroid Build Coastguard Worker // Set integer. 415*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBool(-1); 416*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(true, $m->getOptionalBool()); 417*1b3f573fSAndroid Build Coastguard Worker 418*1b3f573fSAndroid Build Coastguard Worker // Set float. 419*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBool(1.1); 420*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(true, $m->getOptionalBool()); 421*1b3f573fSAndroid Build Coastguard Worker 422*1b3f573fSAndroid Build Coastguard Worker // Set string. 423*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBool(''); 424*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(false, $m->getOptionalBool()); 425*1b3f573fSAndroid Build Coastguard Worker } 426*1b3f573fSAndroid Build Coastguard Worker 427*1b3f573fSAndroid Build Coastguard Worker ######################################################### 428*1b3f573fSAndroid Build Coastguard Worker # Test string field. 429*1b3f573fSAndroid Build Coastguard Worker ######################################################### 430*1b3f573fSAndroid Build Coastguard Worker 431*1b3f573fSAndroid Build Coastguard Worker public function testStringField() 432*1b3f573fSAndroid Build Coastguard Worker { 433*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 434*1b3f573fSAndroid Build Coastguard Worker 435*1b3f573fSAndroid Build Coastguard Worker // Set string. 436*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalString('abc'); 437*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('abc', $m->getOptionalString()); 438*1b3f573fSAndroid Build Coastguard Worker 439*1b3f573fSAndroid Build Coastguard Worker // Set integer. 440*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalString(1); 441*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1', $m->getOptionalString()); 442*1b3f573fSAndroid Build Coastguard Worker 443*1b3f573fSAndroid Build Coastguard Worker // Set double. 444*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalString(1.1); 445*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1.1', $m->getOptionalString()); 446*1b3f573fSAndroid Build Coastguard Worker 447*1b3f573fSAndroid Build Coastguard Worker // Set bool. 448*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalString(true); 449*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1', $m->getOptionalString()); 450*1b3f573fSAndroid Build Coastguard Worker } 451*1b3f573fSAndroid Build Coastguard Worker 452*1b3f573fSAndroid Build Coastguard Worker ######################################################### 453*1b3f573fSAndroid Build Coastguard Worker # Test bytes field. 454*1b3f573fSAndroid Build Coastguard Worker ######################################################### 455*1b3f573fSAndroid Build Coastguard Worker 456*1b3f573fSAndroid Build Coastguard Worker public function testBytesField() 457*1b3f573fSAndroid Build Coastguard Worker { 458*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 459*1b3f573fSAndroid Build Coastguard Worker 460*1b3f573fSAndroid Build Coastguard Worker // Set string. 461*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBytes('abc'); 462*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('abc', $m->getOptionalBytes()); 463*1b3f573fSAndroid Build Coastguard Worker 464*1b3f573fSAndroid Build Coastguard Worker // Set integer. 465*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBytes(1); 466*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1', $m->getOptionalBytes()); 467*1b3f573fSAndroid Build Coastguard Worker 468*1b3f573fSAndroid Build Coastguard Worker // Set double. 469*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBytes(1.1); 470*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1.1', $m->getOptionalBytes()); 471*1b3f573fSAndroid Build Coastguard Worker 472*1b3f573fSAndroid Build Coastguard Worker // Set bool. 473*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBytes(true); 474*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('1', $m->getOptionalBytes()); 475*1b3f573fSAndroid Build Coastguard Worker } 476*1b3f573fSAndroid Build Coastguard Worker 477*1b3f573fSAndroid Build Coastguard Worker public function testBytesFieldInvalidUTF8Success() 478*1b3f573fSAndroid Build Coastguard Worker { 479*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 480*1b3f573fSAndroid Build Coastguard Worker $hex = hex2bin("ff"); 481*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBytes($hex); 482*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 483*1b3f573fSAndroid Build Coastguard Worker } 484*1b3f573fSAndroid Build Coastguard Worker 485*1b3f573fSAndroid Build Coastguard Worker ######################################################### 486*1b3f573fSAndroid Build Coastguard Worker # Test message field. 487*1b3f573fSAndroid Build Coastguard Worker ######################################################### 488*1b3f573fSAndroid Build Coastguard Worker 489*1b3f573fSAndroid Build Coastguard Worker public function testMessageField() 490*1b3f573fSAndroid Build Coastguard Worker { 491*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 492*1b3f573fSAndroid Build Coastguard Worker 493*1b3f573fSAndroid Build Coastguard Worker $this->assertNull($m->getOptionalMessage()); 494*1b3f573fSAndroid Build Coastguard Worker 495*1b3f573fSAndroid Build Coastguard Worker $sub_m = new Sub(); 496*1b3f573fSAndroid Build Coastguard Worker $sub_m->setA(1); 497*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalMessage($sub_m); 498*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalMessage()->getA()); 499*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m->hasOptionalMessage()); 500*1b3f573fSAndroid Build Coastguard Worker 501*1b3f573fSAndroid Build Coastguard Worker $null = null; 502*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalMessage($null); 503*1b3f573fSAndroid Build Coastguard Worker $this->assertNull($m->getOptionalMessage()); 504*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasOptionalMessage()); 505*1b3f573fSAndroid Build Coastguard Worker } 506*1b3f573fSAndroid Build Coastguard Worker 507*1b3f573fSAndroid Build Coastguard Worker public function testLegacyMessageField() 508*1b3f573fSAndroid Build Coastguard Worker { 509*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 510*1b3f573fSAndroid Build Coastguard Worker 511*1b3f573fSAndroid Build Coastguard Worker $sub_m = new TestMessage_Sub(); 512*1b3f573fSAndroid Build Coastguard Worker $sub_m->setA(1); 513*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalMessage($sub_m); 514*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalMessage()->getA()); 515*1b3f573fSAndroid Build Coastguard Worker 516*1b3f573fSAndroid Build Coastguard Worker $null = null; 517*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalMessage($null); 518*1b3f573fSAndroid Build Coastguard Worker $this->assertNull($m->getOptionalMessage()); 519*1b3f573fSAndroid Build Coastguard Worker } 520*1b3f573fSAndroid Build Coastguard Worker 521*1b3f573fSAndroid Build Coastguard Worker public function testLegacyTypehintWithNestedMessages() 522*1b3f573fSAndroid Build Coastguard Worker { 523*1b3f573fSAndroid Build Coastguard Worker $this->legacyMessage(new TestLegacyMessage\NestedMessage); 524*1b3f573fSAndroid Build Coastguard Worker } 525*1b3f573fSAndroid Build Coastguard Worker 526*1b3f573fSAndroid Build Coastguard Worker private function legacyMessage(TestLegacyMessage_NestedMessage $sub) 527*1b3f573fSAndroid Build Coastguard Worker { 528*1b3f573fSAndroid Build Coastguard Worker // If we made it here without a PHP Fatal error, the typehint worked 529*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 530*1b3f573fSAndroid Build Coastguard Worker } 531*1b3f573fSAndroid Build Coastguard Worker 532*1b3f573fSAndroid Build Coastguard Worker ######################################################### 533*1b3f573fSAndroid Build Coastguard Worker # Test repeated field. 534*1b3f573fSAndroid Build Coastguard Worker ######################################################### 535*1b3f573fSAndroid Build Coastguard Worker 536*1b3f573fSAndroid Build Coastguard Worker public function testRepeatedField() 537*1b3f573fSAndroid Build Coastguard Worker { 538*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 539*1b3f573fSAndroid Build Coastguard Worker 540*1b3f573fSAndroid Build Coastguard Worker $repeated_int32 = new RepeatedField(GPBType::INT32); 541*1b3f573fSAndroid Build Coastguard Worker $m->setRepeatedInt32($repeated_int32); 542*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($repeated_int32, $m->getRepeatedInt32()); 543*1b3f573fSAndroid Build Coastguard Worker } 544*1b3f573fSAndroid Build Coastguard Worker 545*1b3f573fSAndroid Build Coastguard Worker public function testRepeatedFieldViaArray() 546*1b3f573fSAndroid Build Coastguard Worker { 547*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 548*1b3f573fSAndroid Build Coastguard Worker 549*1b3f573fSAndroid Build Coastguard Worker $arr = array(); 550*1b3f573fSAndroid Build Coastguard Worker $m->setRepeatedInt32($arr); 551*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0, count($m->getRepeatedInt32())); 552*1b3f573fSAndroid Build Coastguard Worker 553*1b3f573fSAndroid Build Coastguard Worker $arr = array(1, 2.1, "3"); 554*1b3f573fSAndroid Build Coastguard Worker $m->setRepeatedInt32($arr); 555*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m->getRepeatedInt32() instanceof RepeatedField); 556*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("Google\Protobuf\Internal\RepeatedField", 557*1b3f573fSAndroid Build Coastguard Worker get_class($m->getRepeatedInt32())); 558*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, count($m->getRepeatedInt32())); 559*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getRepeatedInt32()[0]); 560*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, $m->getRepeatedInt32()[1]); 561*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, $m->getRepeatedInt32()[2]); 562*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($arr instanceof RepeatedField); 563*1b3f573fSAndroid Build Coastguard Worker } 564*1b3f573fSAndroid Build Coastguard Worker 565*1b3f573fSAndroid Build Coastguard Worker ######################################################### 566*1b3f573fSAndroid Build Coastguard Worker # Test map field. 567*1b3f573fSAndroid Build Coastguard Worker ######################################################### 568*1b3f573fSAndroid Build Coastguard Worker 569*1b3f573fSAndroid Build Coastguard Worker public function testMapField() 570*1b3f573fSAndroid Build Coastguard Worker { 571*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 572*1b3f573fSAndroid Build Coastguard Worker 573*1b3f573fSAndroid Build Coastguard Worker $map_int32_int32 = new MapField(GPBType::INT32, GPBType::INT32); 574*1b3f573fSAndroid Build Coastguard Worker $m->setMapInt32Int32($map_int32_int32); 575*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($map_int32_int32, $m->getMapInt32Int32()); 576*1b3f573fSAndroid Build Coastguard Worker } 577*1b3f573fSAndroid Build Coastguard Worker 578*1b3f573fSAndroid Build Coastguard Worker public function testMapFieldViaArray() 579*1b3f573fSAndroid Build Coastguard Worker { 580*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 581*1b3f573fSAndroid Build Coastguard Worker 582*1b3f573fSAndroid Build Coastguard Worker $dict = array(); 583*1b3f573fSAndroid Build Coastguard Worker $m->setMapInt32Int32($dict); 584*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0, count($m->getMapInt32Int32())); 585*1b3f573fSAndroid Build Coastguard Worker 586*1b3f573fSAndroid Build Coastguard Worker $dict = array(5 => 5, 6 => 6.1, "7" => "7"); 587*1b3f573fSAndroid Build Coastguard Worker $m->setMapInt32Int32($dict); 588*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m->getMapInt32Int32() instanceof MapField); 589*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, count($m->getMapInt32Int32())); 590*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(5, $m->getMapInt32Int32()[5]); 591*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(6, $m->getMapInt32Int32()[6]); 592*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(7, $m->getMapInt32Int32()[7]); 593*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($dict instanceof MapField); 594*1b3f573fSAndroid Build Coastguard Worker } 595*1b3f573fSAndroid Build Coastguard Worker 596*1b3f573fSAndroid Build Coastguard Worker ######################################################### 597*1b3f573fSAndroid Build Coastguard Worker # Test oneof field. 598*1b3f573fSAndroid Build Coastguard Worker ######################################################### 599*1b3f573fSAndroid Build Coastguard Worker 600*1b3f573fSAndroid Build Coastguard Worker public function testOneofField() { 601*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 602*1b3f573fSAndroid Build Coastguard Worker 603*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("", $m->getMyOneof()); 604*1b3f573fSAndroid Build Coastguard Worker 605*1b3f573fSAndroid Build Coastguard Worker $m->setOneofInt32(1); 606*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOneofInt32()); 607*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0.0, $m->getOneofFloat()); 608*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('', $m->getOneofString()); 609*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(NULL, $m->getOneofMessage()); 610*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("oneof_int32", $m->getMyOneof()); 611*1b3f573fSAndroid Build Coastguard Worker 612*1b3f573fSAndroid Build Coastguard Worker $m->setOneofFloat(2.0); 613*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0, $m->getOneofInt32()); 614*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2.0, $m->getOneofFloat()); 615*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('', $m->getOneofString()); 616*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(NULL, $m->getOneofMessage()); 617*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("oneof_float", $m->getMyOneof()); 618*1b3f573fSAndroid Build Coastguard Worker 619*1b3f573fSAndroid Build Coastguard Worker $m->setOneofString('abc'); 620*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0, $m->getOneofInt32()); 621*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0.0, $m->getOneofFloat()); 622*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('abc', $m->getOneofString()); 623*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(NULL, $m->getOneofMessage()); 624*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("oneof_string", $m->getMyOneof()); 625*1b3f573fSAndroid Build Coastguard Worker 626*1b3f573fSAndroid Build Coastguard Worker $sub_m = new Sub(); 627*1b3f573fSAndroid Build Coastguard Worker $sub_m->setA(1); 628*1b3f573fSAndroid Build Coastguard Worker $m->setOneofMessage($sub_m); 629*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0, $m->getOneofInt32()); 630*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(0.0, $m->getOneofFloat()); 631*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('', $m->getOneofString()); 632*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOneofMessage()->getA()); 633*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("oneof_message", $m->getMyOneof()); 634*1b3f573fSAndroid Build Coastguard Worker } 635*1b3f573fSAndroid Build Coastguard Worker 636*1b3f573fSAndroid Build Coastguard Worker ######################################################### 637*1b3f573fSAndroid Build Coastguard Worker # Test clear method. 638*1b3f573fSAndroid Build Coastguard Worker ######################################################### 639*1b3f573fSAndroid Build Coastguard Worker 640*1b3f573fSAndroid Build Coastguard Worker public function testMessageClear() 641*1b3f573fSAndroid Build Coastguard Worker { 642*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 643*1b3f573fSAndroid Build Coastguard Worker $this->setFields($m); 644*1b3f573fSAndroid Build Coastguard Worker $this->expectFields($m); 645*1b3f573fSAndroid Build Coastguard Worker $m->clear(); 646*1b3f573fSAndroid Build Coastguard Worker $this->expectEmptyFields($m); 647*1b3f573fSAndroid Build Coastguard Worker } 648*1b3f573fSAndroid Build Coastguard Worker 649*1b3f573fSAndroid Build Coastguard Worker ######################################################### 650*1b3f573fSAndroid Build Coastguard Worker # Test mergeFrom method. 651*1b3f573fSAndroid Build Coastguard Worker ######################################################### 652*1b3f573fSAndroid Build Coastguard Worker 653*1b3f573fSAndroid Build Coastguard Worker public function testMessageMergeFrom() 654*1b3f573fSAndroid Build Coastguard Worker { 655*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 656*1b3f573fSAndroid Build Coastguard Worker $this->setFields($m); 657*1b3f573fSAndroid Build Coastguard Worker $this->expectFields($m); 658*1b3f573fSAndroid Build Coastguard Worker $arr = $m->getOptionalMessage()->getB(); 659*1b3f573fSAndroid Build Coastguard Worker $arr[] = 1; 660*1b3f573fSAndroid Build Coastguard Worker 661*1b3f573fSAndroid Build Coastguard Worker $n = new TestMessage(); 662*1b3f573fSAndroid Build Coastguard Worker 663*1b3f573fSAndroid Build Coastguard Worker // Singular 664*1b3f573fSAndroid Build Coastguard Worker $n->setOptionalInt32(100); 665*1b3f573fSAndroid Build Coastguard Worker $sub1 = new Sub(); 666*1b3f573fSAndroid Build Coastguard Worker $sub1->setA(101); 667*1b3f573fSAndroid Build Coastguard Worker 668*1b3f573fSAndroid Build Coastguard Worker $b = $sub1->getB(); 669*1b3f573fSAndroid Build Coastguard Worker $b[] = 102; 670*1b3f573fSAndroid Build Coastguard Worker $sub1->setB($b); 671*1b3f573fSAndroid Build Coastguard Worker 672*1b3f573fSAndroid Build Coastguard Worker $n->setOptionalMessage($sub1); 673*1b3f573fSAndroid Build Coastguard Worker 674*1b3f573fSAndroid Build Coastguard Worker // Repeated 675*1b3f573fSAndroid Build Coastguard Worker $repeatedInt32 = $n->getRepeatedInt32(); 676*1b3f573fSAndroid Build Coastguard Worker $repeatedInt32[] = 200; 677*1b3f573fSAndroid Build Coastguard Worker $n->setRepeatedInt32($repeatedInt32); 678*1b3f573fSAndroid Build Coastguard Worker 679*1b3f573fSAndroid Build Coastguard Worker $repeatedString = $n->getRepeatedString(); 680*1b3f573fSAndroid Build Coastguard Worker $repeatedString[] = 'abc'; 681*1b3f573fSAndroid Build Coastguard Worker $n->setRepeatedString($repeatedString); 682*1b3f573fSAndroid Build Coastguard Worker 683*1b3f573fSAndroid Build Coastguard Worker $sub2 = new Sub(); 684*1b3f573fSAndroid Build Coastguard Worker $sub2->setA(201); 685*1b3f573fSAndroid Build Coastguard Worker $repeatedMessage = $n->getRepeatedMessage(); 686*1b3f573fSAndroid Build Coastguard Worker $repeatedMessage[] = $sub2; 687*1b3f573fSAndroid Build Coastguard Worker $n->setRepeatedMessage($repeatedMessage); 688*1b3f573fSAndroid Build Coastguard Worker 689*1b3f573fSAndroid Build Coastguard Worker // Map 690*1b3f573fSAndroid Build Coastguard Worker $mapInt32Int32 = $n->getMapInt32Int32(); 691*1b3f573fSAndroid Build Coastguard Worker $mapInt32Int32[1] = 300; 692*1b3f573fSAndroid Build Coastguard Worker $mapInt32Int32[-62] = 301; 693*1b3f573fSAndroid Build Coastguard Worker $n->setMapInt32Int32($mapInt32Int32); 694*1b3f573fSAndroid Build Coastguard Worker 695*1b3f573fSAndroid Build Coastguard Worker $mapStringString = $n->getMapStringString(); 696*1b3f573fSAndroid Build Coastguard Worker $mapStringString['def'] = 'def'; 697*1b3f573fSAndroid Build Coastguard Worker $n->setMapStringString($mapStringString); 698*1b3f573fSAndroid Build Coastguard Worker 699*1b3f573fSAndroid Build Coastguard Worker $mapInt32Message = $n->getMapInt32Message(); 700*1b3f573fSAndroid Build Coastguard Worker $mapInt32Message[1] = new Sub(); 701*1b3f573fSAndroid Build Coastguard Worker $mapInt32Message[1]->setA(302); 702*1b3f573fSAndroid Build Coastguard Worker $mapInt32Message[2] = new Sub(); 703*1b3f573fSAndroid Build Coastguard Worker $mapInt32Message[2]->setA(303); 704*1b3f573fSAndroid Build Coastguard Worker $n->setMapInt32Message($mapInt32Message); 705*1b3f573fSAndroid Build Coastguard Worker 706*1b3f573fSAndroid Build Coastguard Worker $m->mergeFrom($n); 707*1b3f573fSAndroid Build Coastguard Worker 708*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(100, $m->getOptionalInt32()); 709*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(42, $m->getOptionalUint32()); 710*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(101, $m->getOptionalMessage()->getA()); 711*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, count($m->getOptionalMessage()->getB())); 712*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalMessage()->getB()[0]); 713*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(102, $m->getOptionalMessage()->getB()[1]); 714*1b3f573fSAndroid Build Coastguard Worker 715*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, count($m->getRepeatedInt32())); 716*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(200, $m->getRepeatedInt32()[2]); 717*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, count($m->getRepeatedUint32())); 718*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, count($m->getRepeatedString())); 719*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('abc', $m->getRepeatedString()[2]); 720*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(3, count($m->getRepeatedMessage())); 721*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(201, $m->getRepeatedMessage()[2]->getA()); 722*1b3f573fSAndroid Build Coastguard Worker 723*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, count($m->getMapInt32Int32())); 724*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(300, $m->getMapInt32Int32()[1]); 725*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(301, $m->getMapInt32Int32()[-62]); 726*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, count($m->getMapUint32Uint32())); 727*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, count($m->getMapStringString())); 728*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('def', $m->getMapStringString()['def']); 729*1b3f573fSAndroid Build Coastguard Worker 730*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, count($m->getMapInt32Message())); 731*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(302, $m->getMapInt32Message()[1]->getA()); 732*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(303, $m->getMapInt32Message()[2]->getA()); 733*1b3f573fSAndroid Build Coastguard Worker 734*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("", $m->getMyOneof()); 735*1b3f573fSAndroid Build Coastguard Worker 736*1b3f573fSAndroid Build Coastguard Worker // Check sub-messages are copied by value. 737*1b3f573fSAndroid Build Coastguard Worker $n->getOptionalMessage()->setA(-101); 738*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(101, $m->getOptionalMessage()->getA()); 739*1b3f573fSAndroid Build Coastguard Worker 740*1b3f573fSAndroid Build Coastguard Worker $repeatedMessage = $n->getRepeatedMessage(); 741*1b3f573fSAndroid Build Coastguard Worker $repeatedMessage[0]->setA(-201); 742*1b3f573fSAndroid Build Coastguard Worker $n->setRepeatedMessage($repeatedMessage); 743*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(201, $m->getRepeatedMessage()[2]->getA()); 744*1b3f573fSAndroid Build Coastguard Worker 745*1b3f573fSAndroid Build Coastguard Worker $mapInt32Message = $n->getMapInt32Message(); 746*1b3f573fSAndroid Build Coastguard Worker $mapInt32Message[1]->setA(-302); 747*1b3f573fSAndroid Build Coastguard Worker $n->setMapInt32Message($mapInt32Message); 748*1b3f573fSAndroid Build Coastguard Worker 749*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(302, $m->getMapInt32Message()[1]->getA()); 750*1b3f573fSAndroid Build Coastguard Worker 751*1b3f573fSAndroid Build Coastguard Worker // Test merge oneof. 752*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 753*1b3f573fSAndroid Build Coastguard Worker 754*1b3f573fSAndroid Build Coastguard Worker $n = new TestMessage(); 755*1b3f573fSAndroid Build Coastguard Worker $n->setOneofInt32(1); 756*1b3f573fSAndroid Build Coastguard Worker $m->mergeFrom($n); 757*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOneofInt32()); 758*1b3f573fSAndroid Build Coastguard Worker 759*1b3f573fSAndroid Build Coastguard Worker $sub = new Sub(); 760*1b3f573fSAndroid Build Coastguard Worker $n->setOneofMessage($sub); 761*1b3f573fSAndroid Build Coastguard Worker $n->getOneofMessage()->setA(400); 762*1b3f573fSAndroid Build Coastguard Worker $m->mergeFrom($n); 763*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(400, $m->getOneofMessage()->getA()); 764*1b3f573fSAndroid Build Coastguard Worker $n->getOneofMessage()->setA(-400); 765*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(400, $m->getOneofMessage()->getA()); 766*1b3f573fSAndroid Build Coastguard Worker 767*1b3f573fSAndroid Build Coastguard Worker // Test all fields 768*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 769*1b3f573fSAndroid Build Coastguard Worker $n = new TestMessage(); 770*1b3f573fSAndroid Build Coastguard Worker $this->setFields($m); 771*1b3f573fSAndroid Build Coastguard Worker $n->mergeFrom($m); 772*1b3f573fSAndroid Build Coastguard Worker $this->expectFields($n); 773*1b3f573fSAndroid Build Coastguard Worker } 774*1b3f573fSAndroid Build Coastguard Worker 775*1b3f573fSAndroid Build Coastguard Worker ######################################################### 776*1b3f573fSAndroid Build Coastguard Worker # Test message/enum without namespace. 777*1b3f573fSAndroid Build Coastguard Worker ######################################################### 778*1b3f573fSAndroid Build Coastguard Worker 779*1b3f573fSAndroid Build Coastguard Worker public function testMessageWithoutNamespace() 780*1b3f573fSAndroid Build Coastguard Worker { 781*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 782*1b3f573fSAndroid Build Coastguard Worker $n = new NoNamespaceMessage(); 783*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalNoNamespaceMessage($n); 784*1b3f573fSAndroid Build Coastguard Worker $repeatedNoNamespaceMessage = $m->getRepeatedNoNamespaceMessage(); 785*1b3f573fSAndroid Build Coastguard Worker $repeatedNoNamespaceMessage[] = new NoNamespaceMessage(); 786*1b3f573fSAndroid Build Coastguard Worker $m->setRepeatedNoNamespaceMessage($repeatedNoNamespaceMessage); 787*1b3f573fSAndroid Build Coastguard Worker 788*1b3f573fSAndroid Build Coastguard Worker // test nested messages 789*1b3f573fSAndroid Build Coastguard Worker $sub = new NoNamespaceMessage\NestedMessage(); 790*1b3f573fSAndroid Build Coastguard Worker $n->setNestedMessage($sub); 791*1b3f573fSAndroid Build Coastguard Worker 792*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 793*1b3f573fSAndroid Build Coastguard Worker } 794*1b3f573fSAndroid Build Coastguard Worker 795*1b3f573fSAndroid Build Coastguard Worker public function testEnumWithoutNamespace() 796*1b3f573fSAndroid Build Coastguard Worker { 797*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 798*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalNoNamespaceEnum(NoNamespaceEnum::VALUE_A); 799*1b3f573fSAndroid Build Coastguard Worker $repeatedNoNamespaceEnum = $m->getRepeatedNoNamespaceEnum(); 800*1b3f573fSAndroid Build Coastguard Worker $repeatedNoNamespaceEnum[] = NoNamespaceEnum::VALUE_A; 801*1b3f573fSAndroid Build Coastguard Worker $m->setRepeatedNoNamespaceEnum($repeatedNoNamespaceEnum); 802*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 803*1b3f573fSAndroid Build Coastguard Worker } 804*1b3f573fSAndroid Build Coastguard Worker 805*1b3f573fSAndroid Build Coastguard Worker ######################################################### 806*1b3f573fSAndroid Build Coastguard Worker # Test message with given namespace. 807*1b3f573fSAndroid Build Coastguard Worker ######################################################### 808*1b3f573fSAndroid Build Coastguard Worker 809*1b3f573fSAndroid Build Coastguard Worker public function testNestedMessagesAndEnums() 810*1b3f573fSAndroid Build Coastguard Worker { 811*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 812*1b3f573fSAndroid Build Coastguard Worker $n = new TestMessage\Sub(); 813*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalMessage($n); 814*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalNestedEnum(TestMessage\NestedEnum::ZERO); 815*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($n, $m->getOptionalMessage()); 816*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(TestMessage\NestedEnum::ZERO, $m->getOptionalNestedEnum()); 817*1b3f573fSAndroid Build Coastguard Worker } 818*1b3f573fSAndroid Build Coastguard Worker 819*1b3f573fSAndroid Build Coastguard Worker public function testMessagesAndEnumsWithPrefix() 820*1b3f573fSAndroid Build Coastguard Worker { 821*1b3f573fSAndroid Build Coastguard Worker // Test message prefix 822*1b3f573fSAndroid Build Coastguard Worker $m = new TestIncludePrefixMessage(); 823*1b3f573fSAndroid Build Coastguard Worker $n = new PrefixTestPrefix(); 824*1b3f573fSAndroid Build Coastguard Worker $n->setA(1); 825*1b3f573fSAndroid Build Coastguard Worker $m->setPrefixMessage($n); 826*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getPrefixMessage()->getA()); 827*1b3f573fSAndroid Build Coastguard Worker 828*1b3f573fSAndroid Build Coastguard Worker // Test nested message prefix 829*1b3f573fSAndroid Build Coastguard Worker $o = new PrefixTestPrefix(); 830*1b3f573fSAndroid Build Coastguard Worker $p = new PrefixTestPrefix\PrefixNestedMessage(); 831*1b3f573fSAndroid Build Coastguard Worker $o->setNestedMessage($p); 832*1b3f573fSAndroid Build Coastguard Worker $o->setNestedEnum(PrefixTestPrefix\PrefixNestedEnum::ZERO); 833*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($p, $o->getNestedMessage()); 834*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(PrefixTestPrefix\PrefixNestedEnum::ZERO, $o->getNestedEnum()); 835*1b3f573fSAndroid Build Coastguard Worker } 836*1b3f573fSAndroid Build Coastguard Worker 837*1b3f573fSAndroid Build Coastguard Worker public function testMessagesAndEnumsWithPhpNamespace() 838*1b3f573fSAndroid Build Coastguard Worker { 839*1b3f573fSAndroid Build Coastguard Worker $m = new TestNamespace(); 840*1b3f573fSAndroid Build Coastguard Worker $n = new TestNamespace\NestedMessage(); 841*1b3f573fSAndroid Build Coastguard Worker $m->setNestedMessage($n); 842*1b3f573fSAndroid Build Coastguard Worker $m->setNestedEnum(TestNamespace\NestedEnum::ZERO); 843*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($n, $m->getNestedMessage()); 844*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(TestNamespace\NestedEnum::ZERO, $m->getNestedEnum()); 845*1b3f573fSAndroid Build Coastguard Worker } 846*1b3f573fSAndroid Build Coastguard Worker 847*1b3f573fSAndroid Build Coastguard Worker public function testMesssagesAndEnumsWithEmptyPhpNamespace() 848*1b3f573fSAndroid Build Coastguard Worker { 849*1b3f573fSAndroid Build Coastguard Worker $m = new TestEmptyNamespace(); 850*1b3f573fSAndroid Build Coastguard Worker $n = new TestEmptyNamespace\NestedMessage(); 851*1b3f573fSAndroid Build Coastguard Worker $m->setNestedMessage($n); 852*1b3f573fSAndroid Build Coastguard Worker $m->setNestedEnum(TestEmptyNamespace\NestedEnum::ZERO); 853*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($n, $m->getNestedMessage()); 854*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(TestEmptyNamespace\NestedEnum::ZERO, $m->getNestedEnum()); 855*1b3f573fSAndroid Build Coastguard Worker } 856*1b3f573fSAndroid Build Coastguard Worker 857*1b3f573fSAndroid Build Coastguard Worker public function testMessagesAndEnumsWithNoNamespace() 858*1b3f573fSAndroid Build Coastguard Worker { 859*1b3f573fSAndroid Build Coastguard Worker $m = new NoNamespaceMessage(); 860*1b3f573fSAndroid Build Coastguard Worker $n = new NoNamespaceMessage\NestedMessage(); 861*1b3f573fSAndroid Build Coastguard Worker $m->setNestedMessage($n); 862*1b3f573fSAndroid Build Coastguard Worker $m->setNestedEnum(NoNamespaceMessage\NestedEnum::ZERO); 863*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($n, $m->getNestedMessage()); 864*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(NoNamespaceMessage\NestedEnum::ZERO, $m->getNestedEnum()); 865*1b3f573fSAndroid Build Coastguard Worker } 866*1b3f573fSAndroid Build Coastguard Worker 867*1b3f573fSAndroid Build Coastguard Worker public function testReservedWordsInPackageName() 868*1b3f573fSAndroid Build Coastguard Worker { 869*1b3f573fSAndroid Build Coastguard Worker $m = new TestEmptyPackage(); 870*1b3f573fSAndroid Build Coastguard Worker $n = new TestEmptyPackage\NestedMessage(); 871*1b3f573fSAndroid Build Coastguard Worker $m->setNestedMessage($n); 872*1b3f573fSAndroid Build Coastguard Worker $m->setNestedEnum(TestEmptyPackage\NestedEnum::ZERO); 873*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($n, $m->getNestedMessage()); 874*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(TestEmptyPackage\NestedEnum::ZERO, $m->getNestedEnum()); 875*1b3f573fSAndroid Build Coastguard Worker } 876*1b3f573fSAndroid Build Coastguard Worker 877*1b3f573fSAndroid Build Coastguard Worker public function testReservedWordsInNamespace() 878*1b3f573fSAndroid Build Coastguard Worker { 879*1b3f573fSAndroid Build Coastguard Worker $m = new TestNamespace(); 880*1b3f573fSAndroid Build Coastguard Worker $n = new TestNamespace\PBEmpty(); 881*1b3f573fSAndroid Build Coastguard Worker $o = new TestNamespace\PBEmpty\NestedMessage(); 882*1b3f573fSAndroid Build Coastguard Worker $n->setNestedMessage($o); 883*1b3f573fSAndroid Build Coastguard Worker $n->setNestedEnum(TestNamespace\PBEmpty\NestedEnum::ZERO); 884*1b3f573fSAndroid Build Coastguard Worker $m->setReservedName($n); 885*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($n, $m->getReservedName()); 886*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($o, $n->getNestedMessage()); 887*1b3f573fSAndroid Build Coastguard Worker $this->assertSame( 888*1b3f573fSAndroid Build Coastguard Worker TestNamespace\PBEmpty\NestedEnum::ZERO, 889*1b3f573fSAndroid Build Coastguard Worker $n->getNestedEnum() 890*1b3f573fSAndroid Build Coastguard Worker ); 891*1b3f573fSAndroid Build Coastguard Worker } 892*1b3f573fSAndroid Build Coastguard Worker 893*1b3f573fSAndroid Build Coastguard Worker ######################################################### 894*1b3f573fSAndroid Build Coastguard Worker # Test prefix for reserved words. 895*1b3f573fSAndroid Build Coastguard Worker ######################################################### 896*1b3f573fSAndroid Build Coastguard Worker 897*1b3f573fSAndroid Build Coastguard Worker public function testPrefixForReservedWords() 898*1b3f573fSAndroid Build Coastguard Worker { 899*1b3f573fSAndroid Build Coastguard Worker $m = new \Foo\TestMessage\PBEmpty(); 900*1b3f573fSAndroid Build Coastguard Worker $m = new \Foo\PBEmpty(); 901*1b3f573fSAndroid Build Coastguard Worker $m = new \PrefixEmpty(); 902*1b3f573fSAndroid Build Coastguard Worker $m = new \Foo\PBARRAY(); 903*1b3f573fSAndroid Build Coastguard Worker 904*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBabstract(); 905*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBand(); 906*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBarray(); 907*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBas(); 908*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBbreak(); 909*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBcallable(); 910*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBcase(); 911*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBcatch(); 912*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBclass(); 913*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBclone(); 914*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBconst(); 915*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBcontinue(); 916*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBdeclare(); 917*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBdefault(); 918*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBdie(); 919*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBdo(); 920*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBecho(); 921*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBelse(); 922*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBelseif(); 923*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBempty(); 924*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBenddeclare(); 925*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBendfor(); 926*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBendforeach(); 927*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBendif(); 928*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBendswitch(); 929*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBendwhile(); 930*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBeval(); 931*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBexit(); 932*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBextends(); 933*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBfinal(); 934*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBfinally(); 935*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBfn(); 936*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBfor(); 937*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBforeach(); 938*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBfunction(); 939*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBglobal(); 940*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBgoto(); 941*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBif(); 942*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBimplements(); 943*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBinclude(); 944*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBinclude_once(); 945*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBinstanceof(); 946*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBinsteadof(); 947*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBinterface(); 948*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBisset(); 949*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBlist(); 950*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBmatch(); 951*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBnamespace(); 952*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBnew(); 953*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBor(); 954*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBparent(); 955*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBprint(); 956*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBprivate(); 957*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBprotected(); 958*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBpublic(); 959*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBreadonly(); 960*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBrequire(); 961*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBrequire_once(); 962*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBreturn(); 963*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBself(); 964*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBstatic(); 965*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBswitch(); 966*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBthrow(); 967*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBtrait(); 968*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBtry(); 969*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBunset(); 970*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBuse(); 971*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBvar(); 972*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBwhile(); 973*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBxor(); 974*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PByield(); 975*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBint(); 976*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBfloat(); 977*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBbool(); 978*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBstring(); 979*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBtrue(); 980*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBfalse(); 981*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBnull(); 982*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBvoid(); 983*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower\PBiterable(); 984*1b3f573fSAndroid Build Coastguard Worker 985*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBABSTRACT(); 986*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBAND(); 987*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBARRAY(); 988*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBAS(); 989*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBBREAK(); 990*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBCALLABLE(); 991*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBCASE(); 992*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBCATCH(); 993*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBCLASS(); 994*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBCLONE(); 995*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBCONST(); 996*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBCONTINUE(); 997*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBDECLARE(); 998*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBDEFAULT(); 999*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBDIE(); 1000*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBDO(); 1001*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBECHO(); 1002*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBELSE(); 1003*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBELSEIF(); 1004*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBEMPTY(); 1005*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBENDDECLARE(); 1006*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBENDFOR(); 1007*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBENDFOREACH(); 1008*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBENDIF(); 1009*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBENDSWITCH(); 1010*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBENDWHILE(); 1011*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBEVAL(); 1012*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBEXIT(); 1013*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBEXTENDS(); 1014*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFINAL(); 1015*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFINALLY(); 1016*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFN(); 1017*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFOR(); 1018*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFOREACH(); 1019*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFUNCTION(); 1020*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBGLOBAL(); 1021*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBGOTO(); 1022*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBIF(); 1023*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBIMPLEMENTS(); 1024*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBINCLUDE(); 1025*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBINCLUDE_ONCE(); 1026*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBINSTANCEOF(); 1027*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBINSTEADOF(); 1028*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBINTERFACE(); 1029*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBISSET(); 1030*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBLIST(); 1031*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBMATCH(); 1032*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBNAMESPACE(); 1033*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBNEW(); 1034*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBOR(); 1035*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBPARENT(); 1036*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBPRINT(); 1037*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBPRIVATE(); 1038*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBPROTECTED(); 1039*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBPUBLIC(); 1040*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBREADONLY(); 1041*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBREQUIRE(); 1042*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBREQUIRE_ONCE(); 1043*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBRETURN(); 1044*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBSELF(); 1045*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBSTATIC(); 1046*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBSWITCH(); 1047*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBTHROW(); 1048*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBTRAIT(); 1049*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBTRY(); 1050*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBUNSET(); 1051*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBUSE(); 1052*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBVAR(); 1053*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBWHILE(); 1054*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBXOR(); 1055*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBYIELD(); 1056*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBINT(); 1057*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFLOAT(); 1058*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBBOOL(); 1059*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBSTRING(); 1060*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBTRUE(); 1061*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBFALSE(); 1062*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBNULL(); 1063*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBVOID(); 1064*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper\PBITERABLE(); 1065*1b3f573fSAndroid Build Coastguard Worker 1066*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBabstract(); 1067*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBand(); 1068*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBarray(); 1069*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBas(); 1070*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBbreak(); 1071*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBcallable(); 1072*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBcase(); 1073*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBcatch(); 1074*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBclass(); 1075*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBclone(); 1076*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBconst(); 1077*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBcontinue(); 1078*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBdeclare(); 1079*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBdefault(); 1080*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBdie(); 1081*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBdo(); 1082*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBecho(); 1083*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBelse(); 1084*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBelseif(); 1085*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBempty(); 1086*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBenddeclare(); 1087*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBendfor(); 1088*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBendforeach(); 1089*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBendif(); 1090*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBendswitch(); 1091*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBendwhile(); 1092*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBeval(); 1093*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBexit(); 1094*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBextends(); 1095*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBfinal(); 1096*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBfinally(); 1097*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBfn(); 1098*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBfor(); 1099*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBforeach(); 1100*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBfunction(); 1101*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBglobal(); 1102*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBgoto(); 1103*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBif(); 1104*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBimplements(); 1105*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBinclude(); 1106*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBinclude_once(); 1107*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBinstanceof(); 1108*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBinsteadof(); 1109*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBinterface(); 1110*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBisset(); 1111*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBlist(); 1112*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBmatch(); 1113*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBnamespace(); 1114*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBnew(); 1115*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBor(); 1116*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBparent(); 1117*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBprint(); 1118*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBprivate(); 1119*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBprotected(); 1120*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBpublic(); 1121*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBrequire(); 1122*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBreadonly(); 1123*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBrequire_once(); 1124*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBreturn(); 1125*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBself(); 1126*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBstatic(); 1127*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBswitch(); 1128*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBthrow(); 1129*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBtrait(); 1130*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBtry(); 1131*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBunset(); 1132*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBuse(); 1133*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBvar(); 1134*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBwhile(); 1135*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBxor(); 1136*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PByield(); 1137*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBint(); 1138*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBfloat(); 1139*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBbool(); 1140*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBstring(); 1141*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBtrue(); 1142*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBfalse(); 1143*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBnull(); 1144*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBvoid(); 1145*1b3f573fSAndroid Build Coastguard Worker $m = new \Lower_enum\PBiterable(); 1146*1b3f573fSAndroid Build Coastguard Worker 1147*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBABSTRACT(); 1148*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBAND(); 1149*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBARRAY(); 1150*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBAS(); 1151*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBBREAK(); 1152*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBCALLABLE(); 1153*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBCASE(); 1154*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBCATCH(); 1155*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBCLASS(); 1156*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBCLONE(); 1157*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBCONST(); 1158*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBCONTINUE(); 1159*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBDECLARE(); 1160*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBDEFAULT(); 1161*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBDIE(); 1162*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBDO(); 1163*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBECHO(); 1164*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBELSE(); 1165*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBELSEIF(); 1166*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBEMPTY(); 1167*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBENDDECLARE(); 1168*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBENDFOR(); 1169*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBENDFOREACH(); 1170*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBENDIF(); 1171*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBENDSWITCH(); 1172*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBENDWHILE(); 1173*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBEVAL(); 1174*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBEXIT(); 1175*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBEXTENDS(); 1176*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFINAL(); 1177*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFINALLY(); 1178*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFN(); 1179*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFOR(); 1180*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFOREACH(); 1181*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFUNCTION(); 1182*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBGLOBAL(); 1183*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBGOTO(); 1184*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBIF(); 1185*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBIMPLEMENTS(); 1186*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBINCLUDE(); 1187*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBINCLUDE_ONCE(); 1188*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBINSTANCEOF(); 1189*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBINSTEADOF(); 1190*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBINTERFACE(); 1191*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBISSET(); 1192*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBLIST(); 1193*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBMATCH(); 1194*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBNAMESPACE(); 1195*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBNEW(); 1196*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBOR(); 1197*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBPARENT(); 1198*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBPRINT(); 1199*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBPRIVATE(); 1200*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBPROTECTED(); 1201*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBPUBLIC(); 1202*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBREADONLY(); 1203*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBREQUIRE(); 1204*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBREQUIRE_ONCE(); 1205*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBRETURN(); 1206*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBSELF(); 1207*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBSTATIC(); 1208*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBSWITCH(); 1209*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBTHROW(); 1210*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBTRAIT(); 1211*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBTRY(); 1212*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBUNSET(); 1213*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBUSE(); 1214*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBVAR(); 1215*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBWHILE(); 1216*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBXOR(); 1217*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBYIELD(); 1218*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBINT(); 1219*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFLOAT(); 1220*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBBOOL(); 1221*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBSTRING(); 1222*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBTRUE(); 1223*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBFALSE(); 1224*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBNULL(); 1225*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBVOID(); 1226*1b3f573fSAndroid Build Coastguard Worker $m = new \Upper_enum\PBITERABLE(); 1227*1b3f573fSAndroid Build Coastguard Worker 1228*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBabstract; 1229*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBand; 1230*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBarray; 1231*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBas; 1232*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBbreak; 1233*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBcallable; 1234*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBcase; 1235*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBcatch; 1236*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBclass; 1237*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBclone; 1238*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBconst; 1239*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBcontinue; 1240*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBdeclare; 1241*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBdefault; 1242*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBdie; 1243*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBdo; 1244*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBecho; 1245*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBelse; 1246*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBelseif; 1247*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBempty; 1248*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBenddeclare; 1249*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBendfor; 1250*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBendforeach; 1251*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBendif; 1252*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBendswitch; 1253*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBendwhile; 1254*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBeval; 1255*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBexit; 1256*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBextends; 1257*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBfinal; 1258*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBfinally; 1259*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBfn; 1260*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBfor; 1261*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBforeach; 1262*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBfunction; 1263*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBglobal; 1264*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBgoto; 1265*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBif; 1266*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBimplements; 1267*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBinclude; 1268*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBinclude_once; 1269*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBinstanceof; 1270*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBinsteadof; 1271*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBinterface; 1272*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBisset; 1273*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBlist; 1274*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBmatch; 1275*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBnamespace; 1276*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBnew; 1277*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBor; 1278*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBprint; 1279*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBprivate; 1280*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBprotected; 1281*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBpublic; 1282*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBrequire; 1283*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBrequire_once; 1284*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBreturn; 1285*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBstatic; 1286*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBswitch; 1287*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBthrow; 1288*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBtrait; 1289*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBtry; 1290*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBunset; 1291*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBuse; 1292*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBvar; 1293*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBwhile; 1294*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PBxor; 1295*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::PByield; 1296*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::int; 1297*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::float; 1298*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::bool; 1299*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::string; 1300*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::true; 1301*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::false; 1302*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::null; 1303*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::void; 1304*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::iterable; 1305*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::parent; 1306*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::self; 1307*1b3f573fSAndroid Build Coastguard Worker $m = \Lower_enum_value\NotAllowed::readonly; 1308*1b3f573fSAndroid Build Coastguard Worker 1309*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBABSTRACT; 1310*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBAND; 1311*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBARRAY; 1312*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBAS; 1313*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBBREAK; 1314*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBCALLABLE; 1315*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBCASE; 1316*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBCATCH; 1317*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBCLASS; 1318*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBCLONE; 1319*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBCONST; 1320*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBCONTINUE; 1321*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBDECLARE; 1322*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBDEFAULT; 1323*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBDIE; 1324*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBDO; 1325*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBECHO; 1326*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBELSE; 1327*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBELSEIF; 1328*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBEMPTY; 1329*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBENDDECLARE; 1330*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBENDFOR; 1331*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBENDFOREACH; 1332*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBENDIF; 1333*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBENDSWITCH; 1334*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBENDWHILE; 1335*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBEVAL; 1336*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBEXIT; 1337*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBEXTENDS; 1338*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBFINAL; 1339*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBFINALLY; 1340*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBFN; 1341*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBFOR; 1342*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBFOREACH; 1343*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBFUNCTION; 1344*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBGLOBAL; 1345*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBGOTO; 1346*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBIF; 1347*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBIMPLEMENTS; 1348*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBINCLUDE; 1349*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBINCLUDE_ONCE; 1350*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBINSTANCEOF; 1351*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBINSTEADOF; 1352*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBINTERFACE; 1353*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBISSET; 1354*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBLIST; 1355*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBMATCH; 1356*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBNAMESPACE; 1357*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBNEW; 1358*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBOR; 1359*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBPRINT; 1360*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBPRIVATE; 1361*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBPROTECTED; 1362*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBPUBLIC; 1363*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBREQUIRE; 1364*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBREQUIRE_ONCE; 1365*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBRETURN; 1366*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBSTATIC; 1367*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBSWITCH; 1368*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBTHROW; 1369*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBTRAIT; 1370*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBTRY; 1371*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBUNSET; 1372*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBUSE; 1373*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBVAR; 1374*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBWHILE; 1375*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBXOR; 1376*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PBYIELD; 1377*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::INT; 1378*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::FLOAT; 1379*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::BOOL; 1380*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::STRING; 1381*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::TRUE; 1382*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::FALSE; 1383*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::NULL; 1384*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::VOID; 1385*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::ITERABLE; 1386*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::PARENT; 1387*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::SELF; 1388*1b3f573fSAndroid Build Coastguard Worker $m = \Upper_enum_value\NotAllowed::READONLY; 1389*1b3f573fSAndroid Build Coastguard Worker 1390*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1391*1b3f573fSAndroid Build Coastguard Worker } 1392*1b3f573fSAndroid Build Coastguard Worker 1393*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1394*1b3f573fSAndroid Build Coastguard Worker # Test fluent setters. 1395*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1396*1b3f573fSAndroid Build Coastguard Worker 1397*1b3f573fSAndroid Build Coastguard Worker public function testFluentSetters() 1398*1b3f573fSAndroid Build Coastguard Worker { 1399*1b3f573fSAndroid Build Coastguard Worker $m = (new TestMessage()) 1400*1b3f573fSAndroid Build Coastguard Worker ->setOptionalInt32(1) 1401*1b3f573fSAndroid Build Coastguard Worker ->setOptionalUInt32(2); 1402*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(1, $m->getOptionalInt32()); 1403*1b3f573fSAndroid Build Coastguard Worker $this->assertSame(2, $m->getOptionalUInt32()); 1404*1b3f573fSAndroid Build Coastguard Worker } 1405*1b3f573fSAndroid Build Coastguard Worker 1406*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1407*1b3f573fSAndroid Build Coastguard Worker # Test Reverse Field Order. 1408*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1409*1b3f573fSAndroid Build Coastguard Worker 1410*1b3f573fSAndroid Build Coastguard Worker public function testReverseFieldOrder() 1411*1b3f573fSAndroid Build Coastguard Worker { 1412*1b3f573fSAndroid Build Coastguard Worker $m = new TestReverseFieldOrder(); 1413*1b3f573fSAndroid Build Coastguard Worker $m->setB("abc"); 1414*1b3f573fSAndroid Build Coastguard Worker $this->assertSame("abc", $m->getB()); 1415*1b3f573fSAndroid Build Coastguard Worker $this->assertNotSame("abc", $m->getA()); 1416*1b3f573fSAndroid Build Coastguard Worker } 1417*1b3f573fSAndroid Build Coastguard Worker 1418*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1419*1b3f573fSAndroid Build Coastguard Worker # Test Reverse Field Order. 1420*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1421*1b3f573fSAndroid Build Coastguard Worker 1422*1b3f573fSAndroid Build Coastguard Worker public function testLowerCase() 1423*1b3f573fSAndroid Build Coastguard Worker { 1424*1b3f573fSAndroid Build Coastguard Worker $m = new testLowerCaseMessage(); 1425*1b3f573fSAndroid Build Coastguard Worker $n = testLowerCaseEnum::VALUE; 1426*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1427*1b3f573fSAndroid Build Coastguard Worker } 1428*1b3f573fSAndroid Build Coastguard Worker 1429*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1430*1b3f573fSAndroid Build Coastguard Worker # Test Array Constructor. 1431*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1432*1b3f573fSAndroid Build Coastguard Worker 1433*1b3f573fSAndroid Build Coastguard Worker public function testArrayConstructor() 1434*1b3f573fSAndroid Build Coastguard Worker { 1435*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage([ 1436*1b3f573fSAndroid Build Coastguard Worker 'optional_int32' => -42, 1437*1b3f573fSAndroid Build Coastguard Worker 'optional_int64' => -43, 1438*1b3f573fSAndroid Build Coastguard Worker 'optional_uint32' => 42, 1439*1b3f573fSAndroid Build Coastguard Worker 'optional_uint64' => 43, 1440*1b3f573fSAndroid Build Coastguard Worker 'optional_sint32' => -44, 1441*1b3f573fSAndroid Build Coastguard Worker 'optional_sint64' => -45, 1442*1b3f573fSAndroid Build Coastguard Worker 'optional_fixed32' => 46, 1443*1b3f573fSAndroid Build Coastguard Worker 'optional_fixed64' => 47, 1444*1b3f573fSAndroid Build Coastguard Worker 'optional_sfixed32' => -46, 1445*1b3f573fSAndroid Build Coastguard Worker 'optional_sfixed64' => -47, 1446*1b3f573fSAndroid Build Coastguard Worker 'optional_float' => 1.5, 1447*1b3f573fSAndroid Build Coastguard Worker 'optional_double' => 1.6, 1448*1b3f573fSAndroid Build Coastguard Worker 'optional_bool' => true, 1449*1b3f573fSAndroid Build Coastguard Worker 'optional_string' => 'a', 1450*1b3f573fSAndroid Build Coastguard Worker 'optional_bytes' => 'bbbb', 1451*1b3f573fSAndroid Build Coastguard Worker 'optional_enum' => TestEnum::ONE, 1452*1b3f573fSAndroid Build Coastguard Worker 'optional_message' => new Sub([ 1453*1b3f573fSAndroid Build Coastguard Worker 'a' => 33 1454*1b3f573fSAndroid Build Coastguard Worker ]), 1455*1b3f573fSAndroid Build Coastguard Worker 'repeated_int32' => [-42, -52], 1456*1b3f573fSAndroid Build Coastguard Worker 'repeated_int64' => [-43, -53], 1457*1b3f573fSAndroid Build Coastguard Worker 'repeated_uint32' => [42, 52], 1458*1b3f573fSAndroid Build Coastguard Worker 'repeated_uint64' => [43, 53], 1459*1b3f573fSAndroid Build Coastguard Worker 'repeated_sint32' => [-44, -54], 1460*1b3f573fSAndroid Build Coastguard Worker 'repeated_sint64' => [-45, -55], 1461*1b3f573fSAndroid Build Coastguard Worker 'repeated_fixed32' => [46, 56], 1462*1b3f573fSAndroid Build Coastguard Worker 'repeated_fixed64' => [47, 57], 1463*1b3f573fSAndroid Build Coastguard Worker 'repeated_sfixed32' => [-46, -56], 1464*1b3f573fSAndroid Build Coastguard Worker 'repeated_sfixed64' => [-47, -57], 1465*1b3f573fSAndroid Build Coastguard Worker 'repeated_float' => [1.5, 2.5], 1466*1b3f573fSAndroid Build Coastguard Worker 'repeated_double' => [1.6, 2.6], 1467*1b3f573fSAndroid Build Coastguard Worker 'repeated_bool' => [true, false], 1468*1b3f573fSAndroid Build Coastguard Worker 'repeated_string' => ['a', 'c'], 1469*1b3f573fSAndroid Build Coastguard Worker 'repeated_bytes' => ['bbbb', 'dddd'], 1470*1b3f573fSAndroid Build Coastguard Worker 'repeated_enum' => [TestEnum::ZERO, TestEnum::ONE], 1471*1b3f573fSAndroid Build Coastguard Worker 'repeated_message' => [new Sub(['a' => 34]), 1472*1b3f573fSAndroid Build Coastguard Worker new Sub(['a' => 35])], 1473*1b3f573fSAndroid Build Coastguard Worker 'map_int32_int32' => [-62 => -62], 1474*1b3f573fSAndroid Build Coastguard Worker 'map_int64_int64' => [-63 => -63], 1475*1b3f573fSAndroid Build Coastguard Worker 'map_uint32_uint32' => [62 => 62], 1476*1b3f573fSAndroid Build Coastguard Worker 'map_uint64_uint64' => [63 => 63], 1477*1b3f573fSAndroid Build Coastguard Worker 'map_sint32_sint32' => [-64 => -64], 1478*1b3f573fSAndroid Build Coastguard Worker 'map_sint64_sint64' => [-65 => -65], 1479*1b3f573fSAndroid Build Coastguard Worker 'map_fixed32_fixed32' => [66 => 66], 1480*1b3f573fSAndroid Build Coastguard Worker 'map_fixed64_fixed64' => [67 => 67], 1481*1b3f573fSAndroid Build Coastguard Worker 'map_sfixed32_sfixed32' => [-68 => -68], 1482*1b3f573fSAndroid Build Coastguard Worker 'map_sfixed64_sfixed64' => [-69 => -69], 1483*1b3f573fSAndroid Build Coastguard Worker 'map_int32_float' => [1 => 3.5], 1484*1b3f573fSAndroid Build Coastguard Worker 'map_int32_double' => [1 => 3.6], 1485*1b3f573fSAndroid Build Coastguard Worker 'map_bool_bool' => [true => true], 1486*1b3f573fSAndroid Build Coastguard Worker 'map_string_string' => ['e' => 'e'], 1487*1b3f573fSAndroid Build Coastguard Worker 'map_int32_bytes' => [1 => 'ffff'], 1488*1b3f573fSAndroid Build Coastguard Worker 'map_int32_enum' => [1 => TestEnum::ONE], 1489*1b3f573fSAndroid Build Coastguard Worker 'map_int32_message' => [1 => new Sub(['a' => 36])], 1490*1b3f573fSAndroid Build Coastguard Worker ]); 1491*1b3f573fSAndroid Build Coastguard Worker 1492*1b3f573fSAndroid Build Coastguard Worker TestUtil::assertTestMessage($m); 1493*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1494*1b3f573fSAndroid Build Coastguard Worker } 1495*1b3f573fSAndroid Build Coastguard Worker 1496*1b3f573fSAndroid Build Coastguard Worker public function testReferenceInArrayConstructor() 1497*1b3f573fSAndroid Build Coastguard Worker { 1498*1b3f573fSAndroid Build Coastguard Worker $keys = [[ 1499*1b3f573fSAndroid Build Coastguard Worker 'optional_bool' => true, 1500*1b3f573fSAndroid Build Coastguard Worker 'repeated_bool' => [true], 1501*1b3f573fSAndroid Build Coastguard Worker 'map_bool_bool' => [true => true], 1502*1b3f573fSAndroid Build Coastguard Worker 'optional_double' => 1.0, 1503*1b3f573fSAndroid Build Coastguard Worker 'repeated_double' => [1.0], 1504*1b3f573fSAndroid Build Coastguard Worker 'map_int32_double' => [1 => 1.0], 1505*1b3f573fSAndroid Build Coastguard Worker 'optional_int32' => 1, 1506*1b3f573fSAndroid Build Coastguard Worker 'repeated_int32' => [1], 1507*1b3f573fSAndroid Build Coastguard Worker 'map_int32_int32' => [1 => 1], 1508*1b3f573fSAndroid Build Coastguard Worker 'optional_string' => 'a', 1509*1b3f573fSAndroid Build Coastguard Worker 'repeated_string' => ['a'], 1510*1b3f573fSAndroid Build Coastguard Worker 'map_string_string' => ['a' => 'a'], 1511*1b3f573fSAndroid Build Coastguard Worker 'optional_message' => ['a' => 1], 1512*1b3f573fSAndroid Build Coastguard Worker 'repeated_message' => [['a' => 1]], 1513*1b3f573fSAndroid Build Coastguard Worker 'map_int32_message' => [1 => ['a' => 1]], 1514*1b3f573fSAndroid Build Coastguard Worker ]]; 1515*1b3f573fSAndroid Build Coastguard Worker 1516*1b3f573fSAndroid Build Coastguard Worker foreach ($keys as &$key) { 1517*1b3f573fSAndroid Build Coastguard Worker foreach ($key as $id => &$value) { 1518*1b3f573fSAndroid Build Coastguard Worker if ($id === 'repeated_bool') { 1519*1b3f573fSAndroid Build Coastguard Worker foreach ($value as &$element) { 1520*1b3f573fSAndroid Build Coastguard Worker } 1521*1b3f573fSAndroid Build Coastguard Worker } 1522*1b3f573fSAndroid Build Coastguard Worker if ($id === 'map_bool_bool') { 1523*1b3f573fSAndroid Build Coastguard Worker foreach ($value as $mapKey => &$element) { 1524*1b3f573fSAndroid Build Coastguard Worker } 1525*1b3f573fSAndroid Build Coastguard Worker } 1526*1b3f573fSAndroid Build Coastguard Worker if ($id === 'repeated_double') { 1527*1b3f573fSAndroid Build Coastguard Worker foreach ($value as &$element) { 1528*1b3f573fSAndroid Build Coastguard Worker } 1529*1b3f573fSAndroid Build Coastguard Worker } 1530*1b3f573fSAndroid Build Coastguard Worker if ($id === 'map_int32_double') { 1531*1b3f573fSAndroid Build Coastguard Worker foreach ($value as $mapKey => &$element) { 1532*1b3f573fSAndroid Build Coastguard Worker } 1533*1b3f573fSAndroid Build Coastguard Worker } 1534*1b3f573fSAndroid Build Coastguard Worker if ($id === 'repeated_int32') { 1535*1b3f573fSAndroid Build Coastguard Worker foreach ($value as &$element) { 1536*1b3f573fSAndroid Build Coastguard Worker } 1537*1b3f573fSAndroid Build Coastguard Worker } 1538*1b3f573fSAndroid Build Coastguard Worker if ($id === 'map_int32_int32') { 1539*1b3f573fSAndroid Build Coastguard Worker foreach ($value as $mapKey => &$element) { 1540*1b3f573fSAndroid Build Coastguard Worker } 1541*1b3f573fSAndroid Build Coastguard Worker } 1542*1b3f573fSAndroid Build Coastguard Worker if ($id === 'repeated_string') { 1543*1b3f573fSAndroid Build Coastguard Worker foreach ($value as &$element) { 1544*1b3f573fSAndroid Build Coastguard Worker } 1545*1b3f573fSAndroid Build Coastguard Worker } 1546*1b3f573fSAndroid Build Coastguard Worker if ($id === 'map_string_string') { 1547*1b3f573fSAndroid Build Coastguard Worker foreach ($value as $mapKey => &$element) { 1548*1b3f573fSAndroid Build Coastguard Worker } 1549*1b3f573fSAndroid Build Coastguard Worker } 1550*1b3f573fSAndroid Build Coastguard Worker if ($id === 'optional_message') { 1551*1b3f573fSAndroid Build Coastguard Worker $value = new Sub($value); 1552*1b3f573fSAndroid Build Coastguard Worker } 1553*1b3f573fSAndroid Build Coastguard Worker if ($id === 'repeated_message') { 1554*1b3f573fSAndroid Build Coastguard Worker foreach ($value as &$element) { 1555*1b3f573fSAndroid Build Coastguard Worker $element = new Sub($element); 1556*1b3f573fSAndroid Build Coastguard Worker } 1557*1b3f573fSAndroid Build Coastguard Worker } 1558*1b3f573fSAndroid Build Coastguard Worker if ($id === 'map_int32_message') { 1559*1b3f573fSAndroid Build Coastguard Worker foreach ($value as $mapKey => &$element) { 1560*1b3f573fSAndroid Build Coastguard Worker $element = new Sub($element); 1561*1b3f573fSAndroid Build Coastguard Worker } 1562*1b3f573fSAndroid Build Coastguard Worker } 1563*1b3f573fSAndroid Build Coastguard Worker } 1564*1b3f573fSAndroid Build Coastguard Worker $key = new TestMessage($key); 1565*1b3f573fSAndroid Build Coastguard Worker } 1566*1b3f573fSAndroid Build Coastguard Worker 1567*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1568*1b3f573fSAndroid Build Coastguard Worker } 1569*1b3f573fSAndroid Build Coastguard Worker 1570*1b3f573fSAndroid Build Coastguard Worker public function testOneofMessageInArrayConstructor() 1571*1b3f573fSAndroid Build Coastguard Worker { 1572*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage([ 1573*1b3f573fSAndroid Build Coastguard Worker 'oneof_message' => new Sub(), 1574*1b3f573fSAndroid Build Coastguard Worker ]); 1575*1b3f573fSAndroid Build Coastguard Worker $this->assertSame('oneof_message', $m->getMyOneof()); 1576*1b3f573fSAndroid Build Coastguard Worker $this->assertNotNull($m->getOneofMessage()); 1577*1b3f573fSAndroid Build Coastguard Worker 1578*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1579*1b3f573fSAndroid Build Coastguard Worker } 1580*1b3f573fSAndroid Build Coastguard Worker 1581*1b3f573fSAndroid Build Coastguard Worker public function testOneofStringInArrayConstructor() 1582*1b3f573fSAndroid Build Coastguard Worker { 1583*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage([ 1584*1b3f573fSAndroid Build Coastguard Worker 'oneof_string' => 'abc', 1585*1b3f573fSAndroid Build Coastguard Worker ]); 1586*1b3f573fSAndroid Build Coastguard Worker 1587*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1588*1b3f573fSAndroid Build Coastguard Worker } 1589*1b3f573fSAndroid Build Coastguard Worker 1590*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1591*1b3f573fSAndroid Build Coastguard Worker # Test clone. 1592*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1593*1b3f573fSAndroid Build Coastguard Worker 1594*1b3f573fSAndroid Build Coastguard Worker public function testClone() 1595*1b3f573fSAndroid Build Coastguard Worker { 1596*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage([ 1597*1b3f573fSAndroid Build Coastguard Worker 'optional_int32' => -42, 1598*1b3f573fSAndroid Build Coastguard Worker 'optional_int64' => -43, 1599*1b3f573fSAndroid Build Coastguard Worker 'optional_message' => new Sub([ 1600*1b3f573fSAndroid Build Coastguard Worker 'a' => 33 1601*1b3f573fSAndroid Build Coastguard Worker ]), 1602*1b3f573fSAndroid Build Coastguard Worker 'map_int32_message' => [1 => new Sub(['a' => 36])], 1603*1b3f573fSAndroid Build Coastguard Worker ]); 1604*1b3f573fSAndroid Build Coastguard Worker $m2 = clone $m; 1605*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals($m->getOptionalInt32(), $m2->getOptionalInt32()); 1606*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals($m->getOptionalInt64(), $m2->getOptionalInt64()); 1607*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($m->getOptionalMessage(), $m2->getOptionalMessage()); 1608*1b3f573fSAndroid Build Coastguard Worker $this->assertSame($m->getMapInt32Message()[1], $m2->getMapInt32Message()[1]); 1609*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals($m->serializeToJsonString(), $m2->serializeToJsonString()); 1610*1b3f573fSAndroid Build Coastguard Worker } 1611*1b3f573fSAndroid Build Coastguard Worker 1612*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1613*1b3f573fSAndroid Build Coastguard Worker # Test message equals. 1614*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1615*1b3f573fSAndroid Build Coastguard Worker 1616*1b3f573fSAndroid Build Coastguard Worker public function testMessageEquals() 1617*1b3f573fSAndroid Build Coastguard Worker { 1618*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 1619*1b3f573fSAndroid Build Coastguard Worker TestUtil::setTestMessage($m); 1620*1b3f573fSAndroid Build Coastguard Worker $n = new TestMessage(); 1621*1b3f573fSAndroid Build Coastguard Worker TestUtil::setTestMessage($n); 1622*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals($m, $n); 1623*1b3f573fSAndroid Build Coastguard Worker } 1624*1b3f573fSAndroid Build Coastguard Worker 1625*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1626*1b3f573fSAndroid Build Coastguard Worker # Test reference of value 1627*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1628*1b3f573fSAndroid Build Coastguard Worker 1629*1b3f573fSAndroid Build Coastguard Worker public function testValueIsReference() 1630*1b3f573fSAndroid Build Coastguard Worker { 1631*1b3f573fSAndroid Build Coastguard Worker // Bool element 1632*1b3f573fSAndroid Build Coastguard Worker $values = [true]; 1633*1b3f573fSAndroid Build Coastguard Worker array_walk($values, function (&$value) {}); 1634*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 1635*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalBool($values[0]); 1636*1b3f573fSAndroid Build Coastguard Worker 1637*1b3f573fSAndroid Build Coastguard Worker // Int32 element 1638*1b3f573fSAndroid Build Coastguard Worker $values = [1]; 1639*1b3f573fSAndroid Build Coastguard Worker array_walk($values, function (&$value) {}); 1640*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 1641*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalInt32($values[0]); 1642*1b3f573fSAndroid Build Coastguard Worker 1643*1b3f573fSAndroid Build Coastguard Worker // Double element 1644*1b3f573fSAndroid Build Coastguard Worker $values = [1.0]; 1645*1b3f573fSAndroid Build Coastguard Worker array_walk($values, function (&$value) {}); 1646*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 1647*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalDouble($values[0]); 1648*1b3f573fSAndroid Build Coastguard Worker 1649*1b3f573fSAndroid Build Coastguard Worker // String element 1650*1b3f573fSAndroid Build Coastguard Worker $values = ['a']; 1651*1b3f573fSAndroid Build Coastguard Worker array_walk($values, function (&$value) {}); 1652*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 1653*1b3f573fSAndroid Build Coastguard Worker $m->setOptionalString($values[0]); 1654*1b3f573fSAndroid Build Coastguard Worker 1655*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1656*1b3f573fSAndroid Build Coastguard Worker } 1657*1b3f573fSAndroid Build Coastguard Worker 1658*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1659*1b3f573fSAndroid Build Coastguard Worker # Test equality 1660*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1661*1b3f573fSAndroid Build Coastguard Worker 1662*1b3f573fSAndroid Build Coastguard Worker public function testShallowEquality() 1663*1b3f573fSAndroid Build Coastguard Worker { 1664*1b3f573fSAndroid Build Coastguard Worker $m1 = new TestMessage([ 1665*1b3f573fSAndroid Build Coastguard Worker 'optional_int32' => -42, 1666*1b3f573fSAndroid Build Coastguard Worker 'optional_int64' => -43, 1667*1b3f573fSAndroid Build Coastguard Worker 'optional_uint32' => 42, 1668*1b3f573fSAndroid Build Coastguard Worker 'optional_uint64' => 43, 1669*1b3f573fSAndroid Build Coastguard Worker 'optional_sint32' => -44, 1670*1b3f573fSAndroid Build Coastguard Worker 'optional_sint64' => -45, 1671*1b3f573fSAndroid Build Coastguard Worker 'optional_fixed32' => 46, 1672*1b3f573fSAndroid Build Coastguard Worker 'optional_fixed64' => 47, 1673*1b3f573fSAndroid Build Coastguard Worker 'optional_sfixed32' => -46, 1674*1b3f573fSAndroid Build Coastguard Worker 'optional_sfixed64' => -47, 1675*1b3f573fSAndroid Build Coastguard Worker 'optional_float' => 1.5, 1676*1b3f573fSAndroid Build Coastguard Worker 'optional_double' => 1.6, 1677*1b3f573fSAndroid Build Coastguard Worker 'optional_bool' => true, 1678*1b3f573fSAndroid Build Coastguard Worker 'optional_string' => 'a', 1679*1b3f573fSAndroid Build Coastguard Worker 'optional_bytes' => 'bbbb', 1680*1b3f573fSAndroid Build Coastguard Worker 'optional_enum' => TestEnum::ONE, 1681*1b3f573fSAndroid Build Coastguard Worker ]); 1682*1b3f573fSAndroid Build Coastguard Worker $data = $m1->serializeToString(); 1683*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1684*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1685*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 == $m2); 1686*1b3f573fSAndroid Build Coastguard Worker 1687*1b3f573fSAndroid Build Coastguard Worker $m1->setOptionalInt32(1234); 1688*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1689*1b3f573fSAndroid Build Coastguard Worker } 1690*1b3f573fSAndroid Build Coastguard Worker 1691*1b3f573fSAndroid Build Coastguard Worker public function testDeepEquality() 1692*1b3f573fSAndroid Build Coastguard Worker { 1693*1b3f573fSAndroid Build Coastguard Worker $m1 = new TestMessage([ 1694*1b3f573fSAndroid Build Coastguard Worker 'optional_int32' => -42, 1695*1b3f573fSAndroid Build Coastguard Worker 'optional_int64' => -43, 1696*1b3f573fSAndroid Build Coastguard Worker 'optional_uint32' => 42, 1697*1b3f573fSAndroid Build Coastguard Worker 'optional_uint64' => 43, 1698*1b3f573fSAndroid Build Coastguard Worker 'optional_sint32' => -44, 1699*1b3f573fSAndroid Build Coastguard Worker 'optional_sint64' => -45, 1700*1b3f573fSAndroid Build Coastguard Worker 'optional_fixed32' => 46, 1701*1b3f573fSAndroid Build Coastguard Worker 'optional_fixed64' => 47, 1702*1b3f573fSAndroid Build Coastguard Worker 'optional_sfixed32' => -46, 1703*1b3f573fSAndroid Build Coastguard Worker 'optional_sfixed64' => -47, 1704*1b3f573fSAndroid Build Coastguard Worker 'optional_float' => 1.5, 1705*1b3f573fSAndroid Build Coastguard Worker 'optional_double' => 1.6, 1706*1b3f573fSAndroid Build Coastguard Worker 'optional_bool' => true, 1707*1b3f573fSAndroid Build Coastguard Worker 'optional_string' => 'a', 1708*1b3f573fSAndroid Build Coastguard Worker 'optional_bytes' => 'bbbb', 1709*1b3f573fSAndroid Build Coastguard Worker 'optional_enum' => TestEnum::ONE, 1710*1b3f573fSAndroid Build Coastguard Worker 'optional_message' => new Sub([ 1711*1b3f573fSAndroid Build Coastguard Worker 'a' => 33 1712*1b3f573fSAndroid Build Coastguard Worker ]), 1713*1b3f573fSAndroid Build Coastguard Worker 'repeated_int32' => [-42, -52], 1714*1b3f573fSAndroid Build Coastguard Worker 'repeated_int64' => [-43, -53], 1715*1b3f573fSAndroid Build Coastguard Worker 'repeated_uint32' => [42, 52], 1716*1b3f573fSAndroid Build Coastguard Worker 'repeated_uint64' => [43, 53], 1717*1b3f573fSAndroid Build Coastguard Worker 'repeated_sint32' => [-44, -54], 1718*1b3f573fSAndroid Build Coastguard Worker 'repeated_sint64' => [-45, -55], 1719*1b3f573fSAndroid Build Coastguard Worker 'repeated_fixed32' => [46, 56], 1720*1b3f573fSAndroid Build Coastguard Worker 'repeated_fixed64' => [47, 57], 1721*1b3f573fSAndroid Build Coastguard Worker 'repeated_sfixed32' => [-46, -56], 1722*1b3f573fSAndroid Build Coastguard Worker 'repeated_sfixed64' => [-47, -57], 1723*1b3f573fSAndroid Build Coastguard Worker 'repeated_float' => [1.5, 2.5], 1724*1b3f573fSAndroid Build Coastguard Worker 'repeated_double' => [1.6, 2.6], 1725*1b3f573fSAndroid Build Coastguard Worker 'repeated_bool' => [true, false], 1726*1b3f573fSAndroid Build Coastguard Worker 'repeated_string' => ['a', 'c'], 1727*1b3f573fSAndroid Build Coastguard Worker 'repeated_bytes' => ['bbbb', 'dddd'], 1728*1b3f573fSAndroid Build Coastguard Worker 'repeated_enum' => [TestEnum::ZERO, TestEnum::ONE], 1729*1b3f573fSAndroid Build Coastguard Worker 'repeated_message' => [new Sub(['a' => 34]), 1730*1b3f573fSAndroid Build Coastguard Worker new Sub(['a' => 35])], 1731*1b3f573fSAndroid Build Coastguard Worker 'map_int32_int32' => [-62 => -62], 1732*1b3f573fSAndroid Build Coastguard Worker 'map_int64_int64' => [-63 => -63], 1733*1b3f573fSAndroid Build Coastguard Worker 'map_uint32_uint32' => [62 => 62], 1734*1b3f573fSAndroid Build Coastguard Worker 'map_uint64_uint64' => [63 => 63], 1735*1b3f573fSAndroid Build Coastguard Worker 'map_sint32_sint32' => [-64 => -64], 1736*1b3f573fSAndroid Build Coastguard Worker 'map_sint64_sint64' => [-65 => -65], 1737*1b3f573fSAndroid Build Coastguard Worker 'map_fixed32_fixed32' => [66 => 66], 1738*1b3f573fSAndroid Build Coastguard Worker 'map_fixed64_fixed64' => [67 => 67], 1739*1b3f573fSAndroid Build Coastguard Worker 'map_sfixed32_sfixed32' => [-68 => -68], 1740*1b3f573fSAndroid Build Coastguard Worker 'map_sfixed64_sfixed64' => [-69 => -69], 1741*1b3f573fSAndroid Build Coastguard Worker 'map_int32_float' => [1 => 3.5], 1742*1b3f573fSAndroid Build Coastguard Worker 'map_int32_double' => [1 => 3.6], 1743*1b3f573fSAndroid Build Coastguard Worker 'map_bool_bool' => [true => true], 1744*1b3f573fSAndroid Build Coastguard Worker 'map_string_string' => ['e' => 'e'], 1745*1b3f573fSAndroid Build Coastguard Worker 'map_int32_bytes' => [1 => 'ffff'], 1746*1b3f573fSAndroid Build Coastguard Worker 'map_int32_enum' => [1 => TestEnum::ONE], 1747*1b3f573fSAndroid Build Coastguard Worker 'map_int32_message' => [1 => new Sub(['a' => 36])], 1748*1b3f573fSAndroid Build Coastguard Worker ]); 1749*1b3f573fSAndroid Build Coastguard Worker $data = $m1->serializeToString(); 1750*1b3f573fSAndroid Build Coastguard Worker 1751*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1752*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1753*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 == $m2); 1754*1b3f573fSAndroid Build Coastguard Worker 1755*1b3f573fSAndroid Build Coastguard Worker # Nested sub-message is checked. 1756*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1757*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1758*1b3f573fSAndroid Build Coastguard Worker $m2->getOptionalMessage()->setA(1234); 1759*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1760*1b3f573fSAndroid Build Coastguard Worker 1761*1b3f573fSAndroid Build Coastguard Worker # Repeated field element is checked. 1762*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1763*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1764*1b3f573fSAndroid Build Coastguard Worker $m2->getRepeatedInt32()[0] = 1234; 1765*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1766*1b3f573fSAndroid Build Coastguard Worker 1767*1b3f573fSAndroid Build Coastguard Worker # Repeated field length is checked. 1768*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1769*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1770*1b3f573fSAndroid Build Coastguard Worker $m2->getRepeatedInt32()[] = 1234; 1771*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1772*1b3f573fSAndroid Build Coastguard Worker 1773*1b3f573fSAndroid Build Coastguard Worker # SubMessage inside repeated field is checked. 1774*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1775*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1776*1b3f573fSAndroid Build Coastguard Worker $m2->getRepeatedMessage()[0]->setA(1234); 1777*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1778*1b3f573fSAndroid Build Coastguard Worker 1779*1b3f573fSAndroid Build Coastguard Worker # Map value is checked. 1780*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1781*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1782*1b3f573fSAndroid Build Coastguard Worker $m2->getMapInt32Int32()[-62] = 1234; 1783*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1784*1b3f573fSAndroid Build Coastguard Worker 1785*1b3f573fSAndroid Build Coastguard Worker # Map size is checked. 1786*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1787*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1788*1b3f573fSAndroid Build Coastguard Worker $m2->getMapInt32Int32()[1234] = 1234; 1789*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1790*1b3f573fSAndroid Build Coastguard Worker 1791*1b3f573fSAndroid Build Coastguard Worker # SubMessage inside map field is checked. 1792*1b3f573fSAndroid Build Coastguard Worker $m2 = new TestMessage(); 1793*1b3f573fSAndroid Build Coastguard Worker $m2->mergeFromString($data); 1794*1b3f573fSAndroid Build Coastguard Worker $m2->getMapInt32Message()[1]->setA(1234); 1795*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m1 != $m2); 1796*1b3f573fSAndroid Build Coastguard Worker 1797*1b3f573fSAndroid Build Coastguard Worker # TODO: what about unknown fields? 1798*1b3f573fSAndroid Build Coastguard Worker } 1799*1b3f573fSAndroid Build Coastguard Worker 1800*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1801*1b3f573fSAndroid Build Coastguard Worker # Test hasOneof<Field> methods exists and working 1802*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1803*1b3f573fSAndroid Build Coastguard Worker 1804*1b3f573fSAndroid Build Coastguard Worker public function testHasOneof() { 1805*1b3f573fSAndroid Build Coastguard Worker $m = new TestMessage(); 1806*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasOneofInt32()); 1807*1b3f573fSAndroid Build Coastguard Worker $m->setOneofInt32(42); 1808*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m->hasOneofInt32()); 1809*1b3f573fSAndroid Build Coastguard Worker $m->setOneofString("bar"); 1810*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasOneofInt32()); 1811*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m->hasOneofString()); 1812*1b3f573fSAndroid Build Coastguard Worker $m->clear(); 1813*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasOneofInt32()); 1814*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasOneofString()); 1815*1b3f573fSAndroid Build Coastguard Worker 1816*1b3f573fSAndroid Build Coastguard Worker $sub_m = new Sub(); 1817*1b3f573fSAndroid Build Coastguard Worker $sub_m->setA(1); 1818*1b3f573fSAndroid Build Coastguard Worker $m->setOneofMessage($sub_m); 1819*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue($m->hasOneofMessage()); 1820*1b3f573fSAndroid Build Coastguard Worker $m->setOneofMessage(null); 1821*1b3f573fSAndroid Build Coastguard Worker $this->assertFalse($m->hasOneofMessage()); 1822*1b3f573fSAndroid Build Coastguard Worker } 1823*1b3f573fSAndroid Build Coastguard Worker 1824*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1825*1b3f573fSAndroid Build Coastguard Worker # Test that we don't crash if users create their own messages. 1826*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1827*1b3f573fSAndroid Build Coastguard Worker 1828*1b3f573fSAndroid Build Coastguard Worker public function testUserDefinedClass() { 1829*1b3f573fSAndroid Build Coastguard Worker if (getenv("USE_ZEND_ALLOC") === "0") { 1830*1b3f573fSAndroid Build Coastguard Worker // We're running a memory test. This test appears to leak in a way 1831*1b3f573fSAndroid Build Coastguard Worker // we cannot control, PHP bug? 1832*1b3f573fSAndroid Build Coastguard Worker // 1833*1b3f573fSAndroid Build Coastguard Worker // TODO: investigate further. 1834*1b3f573fSAndroid Build Coastguard Worker $this->markTestSkipped(); 1835*1b3f573fSAndroid Build Coastguard Worker return; 1836*1b3f573fSAndroid Build Coastguard Worker } 1837*1b3f573fSAndroid Build Coastguard Worker 1838*1b3f573fSAndroid Build Coastguard Worker # This is not allowed, but at least we shouldn't crash. 1839*1b3f573fSAndroid Build Coastguard Worker $this->expectException(Exception::class); 1840*1b3f573fSAndroid Build Coastguard Worker new C(); 1841*1b3f573fSAndroid Build Coastguard Worker } 1842*1b3f573fSAndroid Build Coastguard Worker 1843*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1844*1b3f573fSAndroid Build Coastguard Worker # Test no segfault when error happens 1845*1b3f573fSAndroid Build Coastguard Worker ######################################################### 1846*1b3f573fSAndroid Build Coastguard Worker 1847*1b3f573fSAndroid Build Coastguard Worker function throwIntendedException() 1848*1b3f573fSAndroid Build Coastguard Worker { 1849*1b3f573fSAndroid Build Coastguard Worker throw new Exception('Intended'); 1850*1b3f573fSAndroid Build Coastguard Worker } 1851*1b3f573fSAndroid Build Coastguard Worker public function testNoSegfaultWithError() 1852*1b3f573fSAndroid Build Coastguard Worker { 1853*1b3f573fSAndroid Build Coastguard Worker if (getenv("USE_ZEND_ALLOC") === "0") { 1854*1b3f573fSAndroid Build Coastguard Worker // We're running a memory test. This test appears to leak in a way 1855*1b3f573fSAndroid Build Coastguard Worker // we cannot control, PHP bug? 1856*1b3f573fSAndroid Build Coastguard Worker // 1857*1b3f573fSAndroid Build Coastguard Worker // TODO: investigate further. 1858*1b3f573fSAndroid Build Coastguard Worker $this->markTestSkipped(); 1859*1b3f573fSAndroid Build Coastguard Worker return; 1860*1b3f573fSAndroid Build Coastguard Worker } 1861*1b3f573fSAndroid Build Coastguard Worker $this->expectException(Exception::class); 1862*1b3f573fSAndroid Build Coastguard Worker 1863*1b3f573fSAndroid Build Coastguard Worker new TestMessage(['optional_int32' => $this->throwIntendedException()]); 1864*1b3f573fSAndroid Build Coastguard Worker } 1865*1b3f573fSAndroid Build Coastguard Worker 1866*1b3f573fSAndroid Build Coastguard Worker public function testNoExceptionWithVarDump() 1867*1b3f573fSAndroid Build Coastguard Worker { 1868*1b3f573fSAndroid Build Coastguard Worker $m = new Sub(['a' => 1]); 1869*1b3f573fSAndroid Build Coastguard Worker /* 1870*1b3f573fSAndroid Build Coastguard Worker * This line currently segfaults on macOS with: 1871*1b3f573fSAndroid Build Coastguard Worker * 1872*1b3f573fSAndroid Build Coastguard Worker * frame #0: 0x00000001029936cc xdebug.so`xdebug_zend_hash_is_recursive + 4 1873*1b3f573fSAndroid Build Coastguard Worker * frame #1: 0x00000001029a6736 xdebug.so`xdebug_var_export_text_ansi + 1006 1874*1b3f573fSAndroid Build Coastguard Worker * frame #2: 0x00000001029a715d xdebug.so`xdebug_get_zval_value_text_ansi + 273 1875*1b3f573fSAndroid Build Coastguard Worker * frame #3: 0x000000010298a441 xdebug.so`zif_xdebug_var_dump + 297 1876*1b3f573fSAndroid Build Coastguard Worker * frame #4: 0x000000010298d558 xdebug.so`xdebug_execute_internal + 640 1877*1b3f573fSAndroid Build Coastguard Worker * frame #5: 0x000000010046d47f php`ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_HANDLER + 364 1878*1b3f573fSAndroid Build Coastguard Worker * frame #6: 0x000000010043cabc php`execute_ex + 44 1879*1b3f573fSAndroid Build Coastguard Worker * frame #7: 0x000000010298d151 xdebug.so`xdebug_execute_ex + 1662 1880*1b3f573fSAndroid Build Coastguard Worker * frame #8: 0x000000010046d865 php`ZEND_DO_FCALL_SPEC_RETVAL_USED_HANDLER + 426 1881*1b3f573fSAndroid Build Coastguard Worker * 1882*1b3f573fSAndroid Build Coastguard Worker * The value we are passing to var_dump() appears to be corrupt somehow. 1883*1b3f573fSAndroid Build Coastguard Worker */ 1884*1b3f573fSAndroid Build Coastguard Worker /* var_dump($m); */ 1885*1b3f573fSAndroid Build Coastguard Worker 1886*1b3f573fSAndroid Build Coastguard Worker $this->assertTrue(true); 1887*1b3f573fSAndroid Build Coastguard Worker } 1888*1b3f573fSAndroid Build Coastguard Worker 1889*1b3f573fSAndroid Build Coastguard Worker public function testIssue9440() 1890*1b3f573fSAndroid Build Coastguard Worker { 1891*1b3f573fSAndroid Build Coastguard Worker $m = new Test32Fields(); 1892*1b3f573fSAndroid Build Coastguard Worker $m->setId(8); 1893*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(8, $m->getId()); 1894*1b3f573fSAndroid Build Coastguard Worker $m->setVersion('1'); 1895*1b3f573fSAndroid Build Coastguard Worker $this->assertEquals(8, $m->getId()); 1896*1b3f573fSAndroid Build Coastguard Worker } 1897*1b3f573fSAndroid Build Coastguard Worker} 1898