1b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// Protocol Buffers - Google's data interchange format 2b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// Copyright 2008 Google Inc. All rights reserved. 3b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// https://developers.google.com/protocol-buffers/ 4b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// 5b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// Redistribution and use in source and binary forms, with or without 6b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// modification, are permitted provided that the following conditions are 7b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// met: 8b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// 9b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// * Redistributions of source code must retain the above copyright 10b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// notice, this list of conditions and the following disclaimer. 11b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// * Redistributions in binary form must reproduce the above 12b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// copyright notice, this list of conditions and the following disclaimer 13b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// in the documentation and/or other materials provided with the 14b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// distribution. 15b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// * Neither the name of Google Inc. nor the names of its 16b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// contributors may be used to endorse or promote products derived from 17b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// this software without specific prior written permission. 18b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// 19b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 31b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#ifndef GOOGLE_PROTOBUF_MAP_TEST_UTIL_IMPL_H__ 32b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#define GOOGLE_PROTOBUF_MAP_TEST_UTIL_IMPL_H__ 33b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 34b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#include <google/protobuf/stubs/logging.h> 35b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#include <google/protobuf/stubs/common.h> 36b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 37b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 38b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#define EXPECT_TRUE GOOGLE_CHECK 39b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#define ASSERT_TRUE GOOGLE_CHECK 40b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#define EXPECT_FALSE(COND) GOOGLE_CHECK(!(COND)) 41b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#define EXPECT_EQ GOOGLE_CHECK_EQ 42b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#define ASSERT_EQ GOOGLE_CHECK_EQ 43b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 44b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammernamespace google { 45b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammernamespace protobuf_unittest {} // forward declaration 46b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 47b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammernamespace protobuf { 48b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 49b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammernamespace unittest = ::protobuf_unittest; 50b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 51b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerclass MapTestUtilImpl { 52b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public: 53b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Set every field in the TestMap message to a unique value. 54b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename EnumType, EnumType enum_value0, 55b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 56b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void SetMapFields(MapMessage* message); 57b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 58b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Set every field in the TestArenaMap message to a unique value. 59b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename EnumType, EnumType enum_value0, 60b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 61b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void SetArenaMapFields(MapMessage* message); 62b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 63b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Set every field in the message to a default value. 64b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename MapMessage> 65b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void SetMapFieldsInitialized(MapMessage* message); 66b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 67b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Modify all the map fields of the message (which should already have been 68b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // initialized with SetMapFields()). 69b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename EnumType, EnumType enum_value, typename MapMessage> 70b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void ModifyMapFields(MapMessage* message); 71b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 72b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Check that all fields have the values that they should have after 73b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // SetMapFields() is called. 74b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename EnumType, EnumType enum_value0, 75b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 76b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void ExpectMapFieldsSet(const MapMessage& message); 77b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 78b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Check that all fields have the values that they should have after 79b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // SetMapFields() is called for TestArenaMap. 80b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename EnumType, EnumType enum_value0, 81b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 82b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void ExpectArenaMapFieldsSet(const MapMessage& message); 83b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 84b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Check that all fields have the values that they should have after 85b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // SetMapFieldsInitialized() is called. 86b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename EnumType, EnumType enum_value, typename MapMessage> 87b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void ExpectMapFieldsSetInitialized(const MapMessage& message); 88b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 89b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Expect that the message is modified as would be expected from 90b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // ModifyMapFields(). 91b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename EnumType, EnumType enum_value0, 92b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 93b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void ExpectMapFieldsModified(const MapMessage& message); 94b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 95b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Check that all fields are empty. 96b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer template <typename MapMessage> 97b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer static void ExpectClear(const MapMessage& message); 98b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 99b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // // Check that all map fields have the given size. 100b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // template <typename MapMessage> 101b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // static void ExpectMapsSize(const MapMessage& message, int size); 102b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 103b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // // Get pointers of map entries at given index. 104b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // static std::vector<const Message*> GetMapEntries( 105b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // const MapMessage& message, int index); 106b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 107b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // // Get pointers of map entries from release. 108b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // static std::vector<const Message*> GetMapEntriesFromRelease( 109b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // MapMessage* message); 110b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer}; 111b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 112b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename EnumType, EnumType enum_value0, 113b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 114b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::SetMapFields(MapMessage* message) { 115b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Add first element. 116b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_int32())[0] = 0; 117b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int64_int64())[0] = 0; 118b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint32_uint32())[0] = 0; 119b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint64_uint64())[0] = 0; 120b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint32_sint32())[0] = 0; 121b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint64_sint64())[0] = 0; 122b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed32_fixed32())[0] = 0; 123b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed64_fixed64())[0] = 0; 124b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed32_sfixed32())[0] = 0; 125b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed64_sfixed64())[0] = 0; 126b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_float())[0] = 0.0; 127b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_double())[0] = 0.0; 128b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_bool_bool())[0] = false; 129b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_string_string())["0"] = "0"; 130b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_bytes())[0] = "0"; 131b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_enum())[0] = enum_value0; 132b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message())[0].set_c(0); 133b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 134b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Add second element 135b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_int32())[1] = 1; 136b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int64_int64())[1] = 1; 137b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint32_uint32())[1] = 1; 138b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint64_uint64())[1] = 1; 139b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint32_sint32())[1] = 1; 140b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint64_sint64())[1] = 1; 141b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed32_fixed32())[1] = 1; 142b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed64_fixed64())[1] = 1; 143b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed32_sfixed32())[1] = 1; 144b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed64_sfixed64())[1] = 1; 145b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_float())[1] = 1.0; 146b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_double())[1] = 1.0; 147b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_bool_bool())[1] = true; 148b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_string_string())["1"] = "1"; 149b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_bytes())[1] = "1"; 150b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_enum())[1] = enum_value1; 151b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message())[1].set_c(1); 152b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 153b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 154b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename EnumType, EnumType enum_value0, 155b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 156b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::SetArenaMapFields(MapMessage* message) { 157b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Add first element. 158b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_int32())[0] = 0; 159b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int64_int64())[0] = 0; 160b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint32_uint32())[0] = 0; 161b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint64_uint64())[0] = 0; 162b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint32_sint32())[0] = 0; 163b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint64_sint64())[0] = 0; 164b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed32_fixed32())[0] = 0; 165b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed64_fixed64())[0] = 0; 166b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed32_sfixed32())[0] = 0; 167b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed64_sfixed64())[0] = 0; 168b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_float())[0] = 0.0; 169b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_double())[0] = 0.0; 170b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_bool_bool())[0] = false; 171b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_string_string())["0"] = "0"; 172b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_bytes())[0] = "0"; 173b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_enum())[0] = enum_value0; 174b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message())[0].set_c(0); 175b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message_no_arena())[0].set_c(0); 176b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 177b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Add second element 178b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_int32())[1] = 1; 179b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int64_int64())[1] = 1; 180b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint32_uint32())[1] = 1; 181b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint64_uint64())[1] = 1; 182b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint32_sint32())[1] = 1; 183b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint64_sint64())[1] = 1; 184b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed32_fixed32())[1] = 1; 185b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed64_fixed64())[1] = 1; 186b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed32_sfixed32())[1] = 1; 187b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed64_sfixed64())[1] = 1; 188b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_float())[1] = 1.0; 189b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_double())[1] = 1.0; 190b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_bool_bool())[1] = true; 191b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_string_string())["1"] = "1"; 192b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_bytes())[1] = "1"; 193b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_enum())[1] = enum_value1; 194b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message())[1].set_c(1); 195b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message_no_arena())[1].set_c(1); 196b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 197b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 198b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename MapMessage> 199b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::SetMapFieldsInitialized(MapMessage* message) { 200b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Add first element using bracket operator, which should assign default 201b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // value automatically. 202b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_int32())[0]; 203b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int64_int64())[0]; 204b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint32_uint32())[0]; 205b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint64_uint64())[0]; 206b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint32_sint32())[0]; 207b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint64_sint64())[0]; 208b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed32_fixed32())[0]; 209b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed64_fixed64())[0]; 210b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed32_sfixed32())[0]; 211b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed64_sfixed64())[0]; 212b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_float())[0]; 213b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_double())[0]; 214b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_bool_bool())[0]; 215b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_string_string())["0"]; 216b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_bytes())[0]; 217b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_enum())[0]; 218b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message())[0]; 219b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 220b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 221b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename EnumType, EnumType enum_value, typename MapMessage> 222b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::ModifyMapFields(MapMessage* message) { 223b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_int32())[1] = 2; 224b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int64_int64())[1] = 2; 225b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint32_uint32())[1] = 2; 226b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_uint64_uint64())[1] = 2; 227b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint32_sint32())[1] = 2; 228b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sint64_sint64())[1] = 2; 229b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed32_fixed32())[1] = 2; 230b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_fixed64_fixed64())[1] = 2; 231b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed32_sfixed32())[1] = 2; 232b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_sfixed64_sfixed64())[1] = 2; 233b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_float())[1] = 2.0; 234b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_double())[1] = 2.0; 235b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_bool_bool())[1] = false; 236b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_string_string())["1"] = "2"; 237b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_bytes())[1] = "2"; 238b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_enum())[1] = enum_value; 239b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer (*message->mutable_map_int32_foreign_message())[1].set_c(2); 240b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 241b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 242b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename MapMessage> 243b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::ExpectClear(const MapMessage& message) { 244b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_int32().size()); 245b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int64_int64().size()); 246b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint32_uint32().size()); 247b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint64_uint64().size()); 248b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint32_sint32().size()); 249b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint64_sint64().size()); 250b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed32_fixed32().size()); 251b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed64_fixed64().size()); 252b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed32_sfixed32().size()); 253b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed64_sfixed64().size()); 254b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_float().size()); 255b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_double().size()); 256b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_bool_bool().size()); 257b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_string_string().size()); 258b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_bytes().size()); 259b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_enum().size()); 260b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_foreign_message().size()); 261b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 262b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 263b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 264b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 265b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename EnumType, EnumType enum_value0, 266b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 267b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::ExpectMapFieldsSet(const MapMessage& message) { 268b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_int32().size()); 269b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int64_int64().size()); 270b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint32_uint32().size()); 271b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint64_uint64().size()); 272b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint32_sint32().size()); 273b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint64_sint64().size()); 274b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed32_fixed32().size()); 275b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed64_fixed64().size()); 276b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed32_sfixed32().size()); 277b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed64_sfixed64().size()); 278b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_float().size()); 279b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_double().size()); 280b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_bool_bool().size()); 281b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_string_string().size()); 282b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_bytes().size()); 283b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_enum().size()); 284b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_foreign_message().size()); 285b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 286b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_int32().at(0)); 287b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int64_int64().at(0)); 288b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint32_uint32().at(0)); 289b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint64_uint64().at(0)); 290b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint32_sint32().at(0)); 291b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint64_sint64().at(0)); 292b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed32_fixed32().at(0)); 293b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed64_fixed64().at(0)); 294b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed32_sfixed32().at(0)); 295b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed64_sfixed64().at(0)); 296b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_float().at(0)); 297b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_double().at(0)); 298b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(false, message.map_bool_bool().at(0)); 299b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("0", message.map_string_string().at("0")); 300b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("0", message.map_int32_bytes().at(0)); 301b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(enum_value0, message.map_int32_enum().at(0)); 302b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_foreign_message().at(0).c()); 303b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 304b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_int32().at(1)); 305b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int64_int64().at(1)); 306b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_uint32_uint32().at(1)); 307b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_uint64_uint64().at(1)); 308b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sint32_sint32().at(1)); 309b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sint64_sint64().at(1)); 310b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_fixed32_fixed32().at(1)); 311b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_fixed64_fixed64().at(1)); 312b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sfixed32_sfixed32().at(1)); 313b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sfixed64_sfixed64().at(1)); 314b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_float().at(1)); 315b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_double().at(1)); 316b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(true, message.map_bool_bool().at(1)); 317b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("1", message.map_string_string().at("1")); 318b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("1", message.map_int32_bytes().at(1)); 319b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(enum_value1, message.map_int32_enum().at(1)); 320b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_foreign_message().at(1).c()); 321b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 322b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 323b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename EnumType, EnumType enum_value0, 324b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 325b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::ExpectArenaMapFieldsSet(const MapMessage& message) { 326b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_int32().size()); 327b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int64_int64().size()); 328b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint32_uint32().size()); 329b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint64_uint64().size()); 330b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint32_sint32().size()); 331b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint64_sint64().size()); 332b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed32_fixed32().size()); 333b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed64_fixed64().size()); 334b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed32_sfixed32().size()); 335b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed64_sfixed64().size()); 336b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_float().size()); 337b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_double().size()); 338b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_bool_bool().size()); 339b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_string_string().size()); 340b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_bytes().size()); 341b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_enum().size()); 342b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_foreign_message().size()); 343b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_foreign_message_no_arena().size()); 344b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 345b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_int32().at(0)); 346b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int64_int64().at(0)); 347b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint32_uint32().at(0)); 348b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint64_uint64().at(0)); 349b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint32_sint32().at(0)); 350b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint64_sint64().at(0)); 351b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed32_fixed32().at(0)); 352b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed64_fixed64().at(0)); 353b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed32_sfixed32().at(0)); 354b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed64_sfixed64().at(0)); 355b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_float().at(0)); 356b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_double().at(0)); 357b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(false, message.map_bool_bool().at(0)); 358b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("0", message.map_string_string().at("0")); 359b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("0", message.map_int32_bytes().at(0)); 360b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(enum_value0, message.map_int32_enum().at(0)); 361b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_foreign_message().at(0).c()); 362b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_foreign_message_no_arena().at(0).c()); 363b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 364b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_int32().at(1)); 365b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int64_int64().at(1)); 366b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_uint32_uint32().at(1)); 367b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_uint64_uint64().at(1)); 368b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sint32_sint32().at(1)); 369b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sint64_sint64().at(1)); 370b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_fixed32_fixed32().at(1)); 371b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_fixed64_fixed64().at(1)); 372b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sfixed32_sfixed32().at(1)); 373b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sfixed64_sfixed64().at(1)); 374b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_float().at(1)); 375b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_double().at(1)); 376b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(true, message.map_bool_bool().at(1)); 377b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("1", message.map_string_string().at("1")); 378b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("1", message.map_int32_bytes().at(1)); 379b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(enum_value1, message.map_int32_enum().at(1)); 380b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_foreign_message().at(1).c()); 381b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_foreign_message_no_arena().at(1).c()); 382b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 383b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 384b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename EnumType, EnumType enum_value, typename MapMessage> 385b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::ExpectMapFieldsSetInitialized( 386b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer const MapMessage& message) { 387b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_int32().size()); 388b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int64_int64().size()); 389b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_uint32_uint32().size()); 390b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_uint64_uint64().size()); 391b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sint32_sint32().size()); 392b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sint64_sint64().size()); 393b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_fixed32_fixed32().size()); 394b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_fixed64_fixed64().size()); 395b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sfixed32_sfixed32().size()); 396b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_sfixed64_sfixed64().size()); 397b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_float().size()); 398b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_double().size()); 399b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_bool_bool().size()); 400b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_string_string().size()); 401b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_bytes().size()); 402b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_enum().size()); 403b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(1, message.map_int32_foreign_message().size()); 404b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 405b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_int32().at(0)); 406b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int64_int64().at(0)); 407b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint32_uint32().at(0)); 408b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint64_uint64().at(0)); 409b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint32_sint32().at(0)); 410b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint64_sint64().at(0)); 411b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed32_fixed32().at(0)); 412b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed64_fixed64().at(0)); 413b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed32_sfixed32().at(0)); 414b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed64_sfixed64().at(0)); 415b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_float().at(0)); 416b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_double().at(0)); 417b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(false, message.map_bool_bool().at(0)); 418b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("", message.map_string_string().at("0")); 419b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("", message.map_int32_bytes().at(0)); 420b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(enum_value, message.map_int32_enum().at(0)); 421b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_foreign_message().at(0).ByteSize()); 422b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 423b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 424b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertemplate <typename EnumType, EnumType enum_value0, 425b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EnumType enum_value1, typename MapMessage> 426b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammervoid MapTestUtilImpl::ExpectMapFieldsModified( 427b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer const MapMessage& message) { 428b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // ModifyMapFields only sets the second element of each field. In addition to 429b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // verifying this, we also verify that the first element and size were *not* 430b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // modified. 431b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_int32().size()); 432b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int64_int64().size()); 433b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint32_uint32().size()); 434b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint64_uint64().size()); 435b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint32_sint32().size()); 436b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint64_sint64().size()); 437b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed32_fixed32().size()); 438b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed64_fixed64().size()); 439b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed32_sfixed32().size()); 440b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed64_sfixed64().size()); 441b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_float().size()); 442b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_double().size()); 443b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_bool_bool().size()); 444b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_string_string().size()); 445b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_bytes().size()); 446b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_enum().size()); 447b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_foreign_message().size()); 448b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 449b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_int32().at(0)); 450b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int64_int64().at(0)); 451b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint32_uint32().at(0)); 452b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_uint64_uint64().at(0)); 453b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint32_sint32().at(0)); 454b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sint64_sint64().at(0)); 455b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed32_fixed32().at(0)); 456b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_fixed64_fixed64().at(0)); 457b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed32_sfixed32().at(0)); 458b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_sfixed64_sfixed64().at(0)); 459b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_float().at(0)); 460b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_double().at(0)); 461b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(false, message.map_bool_bool().at(0)); 462b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("0", message.map_string_string().at("0")); 463b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("0", message.map_int32_bytes().at(0)); 464b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(enum_value0, message.map_int32_enum().at(0)); 465b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(0, message.map_int32_foreign_message().at(0).c()); 466b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 467b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Actually verify the second (modified) elements now. 468b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_int32().at(1)); 469b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int64_int64().at(1)); 470b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint32_uint32().at(1)); 471b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_uint64_uint64().at(1)); 472b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint32_sint32().at(1)); 473b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sint64_sint64().at(1)); 474b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed32_fixed32().at(1)); 475b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_fixed64_fixed64().at(1)); 476b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed32_sfixed32().at(1)); 477b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_sfixed64_sfixed64().at(1)); 478b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_float().at(1)); 479b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_double().at(1)); 480b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(false, message.map_bool_bool().at(1)); 481b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("2", message.map_string_string().at("1")); 482b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ("2", message.map_int32_bytes().at(1)); 483b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(enum_value1, message.map_int32_enum().at(1)); 484b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer EXPECT_EQ(2, message.map_int32_foreign_message().at(1).c()); 485b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 486b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 487b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} // namespace protobuf 488b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 489b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} // namespace google 490b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#endif // GOOGLE_PROTOBUF_MAP_TEST_UTIL_IMPL_H__ 491