From 9a8ef05a34dab7583b6f253daca294d6b1bfb187 Mon Sep 17 00:00:00 2001 From: Paul Yang Date: Fri, 24 May 2019 10:00:09 -0700 Subject: Append field number to accessors if there is conflict (#6169) Previously, foo_value and foo (wrapper field) will both have get/setFooValue --- php/tests/proto/test_wrapper_type_setters.proto | 11 +++++++ php/tests/wrapper_type_setters_test.php | 38 +++++++++++++++++++++++++ 2 files changed, 49 insertions(+) (limited to 'php') diff --git a/php/tests/proto/test_wrapper_type_setters.proto b/php/tests/proto/test_wrapper_type_setters.proto index 41ca7f3f3..119bd2547 100644 --- a/php/tests/proto/test_wrapper_type_setters.proto +++ b/php/tests/proto/test_wrapper_type_setters.proto @@ -24,3 +24,14 @@ message TestWrapperSetters { map map_string_value = 13; } + +message TestWrapperAccessorConflicts { + int32 normal_vs_wrapper_value = 1; + google.protobuf.Int32Value normal_vs_wrapper = 2; + + int32 normal_vs_normal_value = 3; + int32 normal_vs_normal = 4; + + google.protobuf.Int32Value wrapper_vs_wrapper_value = 5; + google.protobuf.Int32Value wrapper_vs_wrapper = 6; +} diff --git a/php/tests/wrapper_type_setters_test.php b/php/tests/wrapper_type_setters_test.php index 5509a175a..35e3a7dec 100644 --- a/php/tests/wrapper_type_setters_test.php +++ b/php/tests/wrapper_type_setters_test.php @@ -16,6 +16,44 @@ use Google\Protobuf\UInt64Value; class WrapperTypeSettersTest extends TestBase { + public function testConflictNormalVsWrapper() + { + $m = new Foo\TestWrapperAccessorConflicts(); + + $m->setNormalVsWrapperValue1(1); + $this->assertSame(1, $m->getNormalVsWrapperValue1()); + + $m->setNormalVsWrapperValue2(1); + $this->assertSame(1, $m->getNormalVsWrapperValue2()); + + $wrapper = new Int32Value(["value" => 1]); + $m->setNormalVsWrapper($wrapper); + $this->assertSame(1, $m->getNormalVsWrapper()->getValue()); + } + + public function testConflictNormalVsNormal() + { + $m = new Foo\TestWrapperAccessorConflicts(); + + $m->setNormalVsNormalValue(1); + $this->assertSame(1, $m->getNormalVsNormalValue()); + + $m->setNormalVsNormal(1); + $this->assertSame(1, $m->getNormalVsNormal()); + } + + public function testConflictWrapperVsWrapper() + { + $m = new Foo\TestWrapperAccessorConflicts(); + + $m->setWrapperVsWrapperValueValue(1); + $this->assertSame(1, $m->getWrapperVsWrapperValueValue()); + + $wrapper = new Int32Value(["value" => 1]); + $m->setWrapperVsWrapperValue5($wrapper); + $this->assertSame(1, $m->getWrapperVsWrapperValue5()->getValue()); + } + /** * @dataProvider gettersAndSettersDataProvider */ -- cgit v1.2.3