diff --git a/android/src/main/java/com/android/i18n/addressinput/AddressAutocompleteController.java b/android/src/main/java/com/android/i18n/addressinput/AddressAutocompleteController.java index c71eb4e5..80dd8cd7 100644 --- a/android/src/main/java/com/android/i18n/addressinput/AddressAutocompleteController.java +++ b/android/src/main/java/com/android/i18n/addressinput/AddressAutocompleteController.java @@ -73,7 +73,7 @@ public void onItemClick(AdapterView parent, View view, int position, long id) (AddressAutocompletePrediction) adapter.getItem(position).getAutocompletePrediction(); - (new AsyncTask() { + new AsyncTask() { @Override protected AddressData doInBackground( AddressAutocompletePrediction... predictions) { @@ -91,7 +91,7 @@ protected void onPostExecute(AddressData addressData) { Log.e(TAG, "AddressData: " + addressData.toString()); listener.onAddressSelected(addressData); } - }) + } .execute(prediction); } else { Log.i(TAG, "No onAddressSelected listener."); diff --git a/android/src/main/java/com/android/i18n/addressinput/AddressUiComponent.java b/android/src/main/java/com/android/i18n/addressinput/AddressUiComponent.java index c1d11a47..12d29ebe 100644 --- a/android/src/main/java/com/android/i18n/addressinput/AddressUiComponent.java +++ b/android/src/main/java/com/android/i18n/addressinput/AddressUiComponent.java @@ -65,10 +65,7 @@ enum UiComponent { this.uiType = UiComponent.EDIT; } - /** - * Initializes the candidatesList, and set the uiType and parentId. - * @param candidatesList - */ + /** Initializes the candidatesList, and set the uiType and parentId. */ void initializeCandidatesList(List candidatesList) { this.candidatesList = candidatesList; if (candidatesList.size() > 1) { diff --git a/android/src/main/java/com/android/i18n/addressinput/AddressWidget.java b/android/src/main/java/com/android/i18n/addressinput/AddressWidget.java index ae28c1d3..1b9feadf 100644 --- a/android/src/main/java/com/android/i18n/addressinput/AddressWidget.java +++ b/android/src/main/java/com/android/i18n/addressinput/AddressWidget.java @@ -493,7 +493,7 @@ private void buildCountryListBox() { } private String getLocalCountryName(String regionCode) { - return (new Locale("", regionCode)).getDisplayCountry(Locale.getDefault()); + return new Locale("", regionCode).getDisplayCountry(Locale.getDefault()); } private AddressSpinnerInfo findSpinnerByView(View view) { diff --git a/android/src/main/java/com/android/i18n/addressinput/AndroidAsyncRequestApi.java b/android/src/main/java/com/android/i18n/addressinput/AndroidAsyncRequestApi.java index 5fe40e93..2ece2356 100644 --- a/android/src/main/java/com/android/i18n/addressinput/AndroidAsyncRequestApi.java +++ b/android/src/main/java/com/android/i18n/addressinput/AndroidAsyncRequestApi.java @@ -99,7 +99,7 @@ public void run() { @Override public void requestObject(String url, AsyncCallback callback, int timeoutMillis) { try { - (new AsyncHttp(stringToUrl(url), callback, timeoutMillis)).start(); + new AsyncHttp(stringToUrl(url), callback, timeoutMillis).start(); } catch (MalformedURLException e) { callback.onFailure(); } diff --git a/cpp/src/address_field_util.cc b/cpp/src/address_field_util.cc index 1c62fd3a..d7be3058 100644 --- a/cpp/src/address_field_util.cc +++ b/cpp/src/address_field_util.cc @@ -73,7 +73,7 @@ void ParseFormatRule(const std::string& format, } if (prev < next) { // Push back preceding literal. - elements->push_back(FormatElement(std::string(prev, next))); + elements->emplace_back(std::string(prev, next)); } if ((prev = ++next) == format.end()) { // Move forward and check we haven't reached the end of the string @@ -83,14 +83,14 @@ void ParseFormatRule(const std::string& format, // Process the token after the %. AddressField field; if (*next == 'n') { - elements->push_back(FormatElement()); + elements->emplace_back(); } else if (ParseFieldToken(*next, &field)) { - elements->push_back(FormatElement(field)); + elements->emplace_back(field); } // Else it's an unknown token, we ignore it. } // Push back any trailing literal. if (prev != format.end()) { - elements->push_back(FormatElement(std::string(prev, format.end()))); + elements->emplace_back(std::string(prev, format.end())); } } diff --git a/cpp/src/localization.cc b/cpp/src/localization.cc index 1a99617e..3e438f97 100644 --- a/cpp/src/localization.cc +++ b/cpp/src/localization.cc @@ -35,7 +35,7 @@ void PushBackUrl(const std::string& url, std::vector* parameters) { assert(parameters != nullptr); // TODO: HTML-escape the "url". parameters->push_back(""); - parameters->push_back(""); + parameters->emplace_back(""); } } // namespace diff --git a/cpp/test/address_data_test.cc b/cpp/test/address_data_test.cc index 73733999..5ede2622 100644 --- a/cpp/test/address_data_test.cc +++ b/cpp/test/address_data_test.cc @@ -36,15 +36,16 @@ using i18n::addressinput::ORGANIZATION; using i18n::addressinput::RECIPIENT; TEST(AddressDataTest, GetFieldValue) { - AddressData address; - address.region_code = "rrr"; - address.administrative_area = "sss"; - address.locality = "ccc"; - address.dependent_locality = "ddd"; - address.sorting_code = "xxx"; - address.postal_code = "zzz"; - address.organization = "ooo"; - address.recipient = "nnn"; + const AddressData address{ + .region_code = "rrr", + .administrative_area = "sss", + .locality = "ccc", + .dependent_locality = "ddd", + .postal_code = "zzz", + .sorting_code = "xxx", + .organization = "ooo", + .recipient = "nnn", + }; EXPECT_EQ(address.region_code, address.GetFieldValue(COUNTRY)); @@ -65,9 +66,10 @@ TEST(AddressDataTest, GetFieldValue) { } TEST(AddressDataTest, GetRepeatedFieldValue) { - AddressData address; - address.address_line.emplace_back("aaa"); - address.address_line.emplace_back("222"); + const AddressData address{.address_line{ + "aaa", + "222", + }}; EXPECT_EQ(address.address_line, address.GetRepeatedFieldValue(STREET_ADDRESS)); } @@ -85,15 +87,17 @@ TEST(AddressDataTest, IsFieldEmpty) { EXPECT_TRUE(address.IsFieldEmpty(ORGANIZATION)); EXPECT_TRUE(address.IsFieldEmpty(RECIPIENT)); - address.region_code = "rrr"; - address.administrative_area = "sss"; - address.locality = "ccc"; - address.dependent_locality = "ddd"; - address.sorting_code = "xxx"; - address.postal_code = "zzz"; - address.address_line.emplace_back("aaa"); - address.organization = "ooo"; - address.recipient = "nnn"; + address = { + .region_code = "rrr", + .address_line{"aaa"}, + .administrative_area = "sss", + .locality = "ccc", + .dependent_locality = "ddd", + .postal_code = "zzz", + .sorting_code = "xxx", + .organization = "ooo", + .recipient = "nnn", + }; EXPECT_FALSE(address.IsFieldEmpty(COUNTRY)); EXPECT_FALSE(address.IsFieldEmpty(ADMIN_AREA)); @@ -128,35 +132,41 @@ TEST(AddressDataTest, IsFieldEmptyVector) { } TEST(AddressDataTest, IsFieldEmptyVectorWhitespace) { - AddressData address; - address.address_line.emplace_back(" "); - address.address_line.emplace_back(" "); - address.address_line.emplace_back(" "); + AddressData address{.address_line{ + " ", + " ", + " ", + }}; EXPECT_TRUE(address.IsFieldEmpty(STREET_ADDRESS)); - address.address_line.clear(); - address.address_line.emplace_back("abc"); + address.address_line = { + "abc", + }; EXPECT_FALSE(address.IsFieldEmpty(STREET_ADDRESS)); - address.address_line.clear(); - address.address_line.emplace_back(" "); - address.address_line.emplace_back(" b "); - address.address_line.emplace_back(" "); + address.address_line = { + " ", + " b ", + " ", + }; EXPECT_FALSE(address.IsFieldEmpty(STREET_ADDRESS)); } TEST(AddressDataTest, StreamFunction) { std::ostringstream oss; - AddressData address; - address.address_line.emplace_back("Line 1"); - address.address_line.emplace_back("Line 2"); - address.recipient = "N"; - address.region_code = "R"; - address.postal_code = "Z"; - address.administrative_area = "S"; - address.locality = "C"; - address.dependent_locality = "D"; - address.sorting_code = "X"; - address.language_code = "zh-Hant"; - address.organization = "O"; + const AddressData address{ + .region_code = "R", + .address_line{ + "Line 1", + "Line 2", + }, + .administrative_area = "S", + .locality = "C", + .dependent_locality = "D", + .postal_code = "Z", + .sorting_code = "X", + .language_code = "zh-Hant", + .organization = "O", + .recipient = "N", + }; oss << address; EXPECT_EQ("region_code: \"R\"\n" "administrative_area: \"S\"\n" @@ -172,18 +182,21 @@ TEST(AddressDataTest, StreamFunction) { } TEST(AddressDataTest, TestEquals) { - AddressData address; - address.address_line.emplace_back("Line 1"); - address.address_line.emplace_back("Line 2"); - address.recipient = "N"; - address.region_code = "R"; - address.postal_code = "Z"; - address.administrative_area = "S"; - address.locality = "C"; - address.dependent_locality = "D"; - address.sorting_code = "X"; - address.organization = "O"; - address.language_code = "zh-Hant"; + const AddressData address{ + .region_code = "R", + .address_line{ + "Line 1", + "Line 2", + }, + .administrative_area = "S", + .locality = "C", + .dependent_locality = "D", + .postal_code = "Z", + .sorting_code = "X", + .language_code = "zh-Hant", + .organization = "O", + .recipient = "N", + }; AddressData clone = address; @@ -195,13 +208,13 @@ TEST(AddressDataTest, TestEquals) { #ifndef NDEBUG TEST(AddressDataTest, GetFieldValueInvalid) { - AddressData address; + const AddressData address; ASSERT_DEATH_IF_SUPPORTED(address.GetFieldValue(STREET_ADDRESS), "ssertion.*failed"); } TEST(AddressDataTest, GetVectorFieldValueInvalid) { - AddressData address; + const AddressData address; ASSERT_DEATH_IF_SUPPORTED(address.GetRepeatedFieldValue(COUNTRY), "ssertion.*failed"); } diff --git a/cpp/test/address_field_util_test.cc b/cpp/test/address_field_util_test.cc index 36843ba4..7c09bbc9 100644 --- a/cpp/test/address_field_util_test.cc +++ b/cpp/test/address_field_util_test.cc @@ -40,19 +40,20 @@ TEST(AddressFieldUtilTest, FormatParseNewline) { std::vector actual; ParseFormatRule("%O%n%N%n%A%nAX-%Z %C%nÅLAND", &actual); - std::vector expected; - expected.emplace_back(ORGANIZATION); - expected.emplace_back(); - expected.emplace_back(RECIPIENT); - expected.emplace_back(); - expected.emplace_back(STREET_ADDRESS); - expected.emplace_back(); - expected.emplace_back("AX-"); - expected.emplace_back(POSTAL_CODE); - expected.emplace_back(" "); - expected.emplace_back(LOCALITY); - expected.emplace_back(); - expected.emplace_back("ÅLAND"); + const std::vector expected{ + FormatElement{ORGANIZATION}, + FormatElement{}, + FormatElement{RECIPIENT}, + FormatElement{}, + FormatElement{STREET_ADDRESS}, + FormatElement{}, + FormatElement{"AX-"}, + FormatElement{POSTAL_CODE}, + FormatElement{" "}, + FormatElement{LOCALITY}, + FormatElement{}, + FormatElement{"ÅLAND"}, + }; EXPECT_EQ(expected, actual); } @@ -60,7 +61,7 @@ TEST(AddressFieldUtilTest, FormatParseNewline) { TEST(AddressFieldUtilTest, FormatUnknownTokenIsIgnored) { std::vector actual; ParseFormatRule("%1%R", &actual); // %1 is not supported. - std::vector expected{FormatElement(COUNTRY)}; + const std::vector expected{FormatElement{COUNTRY}}; EXPECT_EQ(expected, actual); } @@ -80,9 +81,10 @@ TEST(AddressFieldUtilTest, RequiredParseDefault) { std::vector actual; ParseAddressFieldsRequired("AC", &actual); - std::vector expected; - expected.push_back(STREET_ADDRESS); - expected.push_back(LOCALITY); + const std::vector expected{ + STREET_ADDRESS, + LOCALITY, + }; EXPECT_EQ(expected, actual); } diff --git a/cpp/test/address_formatter_test.cc b/cpp/test/address_formatter_test.cc index b054326c..8df8b282 100644 --- a/cpp/test/address_formatter_test.cc +++ b/cpp/test/address_formatter_test.cc @@ -29,16 +29,17 @@ using i18n::addressinput::GetFormattedNationalAddressLine; using i18n::addressinput::GetStreetAddressLinesAsSingleLine; TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_EmptyAddress) { - AddressData address; + const AddressData address; std::string result; GetStreetAddressLinesAsSingleLine(address, &result); EXPECT_TRUE(result.empty()); } TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_1Line) { - AddressData address; - address.region_code = "US"; // Not used. - address.address_line.emplace_back("Line 1"); + AddressData address{ + .region_code = "US", // Not used. + .address_line{"Line 1"}, + }; std::string result; GetStreetAddressLinesAsSingleLine(address, &result); @@ -55,10 +56,13 @@ TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_1Line) { } TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_2Lines) { - AddressData address; - address.region_code = "US"; // Not used. - address.address_line.emplace_back("Line 1"); - address.address_line.emplace_back("Line 2"); + AddressData address{ + .region_code = "US", // Not used. + .address_line{ + "Line 1", + "Line 2", + }, + }; std::string result; GetStreetAddressLinesAsSingleLine(address, &result); @@ -84,14 +88,17 @@ TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_2Lines) { } TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_5Lines) { - AddressData address; - address.region_code = "US"; // Not used. - address.address_line.emplace_back("Line 1"); - address.address_line.emplace_back("Line 2"); - address.address_line.emplace_back("Line 3"); - address.address_line.emplace_back("Line 4"); - address.address_line.emplace_back("Line 5"); - address.language_code = "fr"; + const AddressData address{ + .region_code = "US", // Not used. + .address_line{ + "Line 1", + "Line 2", + "Line 3", + "Line 4", + "Line 5", + }, + .language_code = "fr", + }; std::string result; GetStreetAddressLinesAsSingleLine(address, &result); @@ -99,17 +106,21 @@ TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_5Lines) { } TEST(AddressFormatterTest, GetFormattedNationalAddressLocalLanguage) { - AddressData address; - address.region_code = "NZ"; - address.address_line.emplace_back("Rotopapa"); - address.address_line.emplace_back("Irwell 3RD"); - address.postal_code = "8704"; - address.locality = "Leeston"; - - std::vector expected; - expected.emplace_back("Rotopapa"); - expected.emplace_back("Irwell 3RD"); - expected.emplace_back("Leeston 8704"); + AddressData address{ + .region_code = "NZ", + .address_line{ + "Rotopapa", + "Irwell 3RD", + }, + .locality = "Leeston", + .postal_code = "8704", + }; + + const std::vector expected{ + "Rotopapa", + "Irwell 3RD", + "Leeston 8704", + }; std::vector lines; GetFormattedNationalAddress(address, &lines); @@ -134,18 +145,20 @@ TEST(AddressFormatterTest, GetFormattedNationalAddressLatinFormat) { static const char kTaiwanStreetLine[] = "台灣信義路三段33號"; static const char kPostalCode[] = "106"; - AddressData address; - address.region_code = "TW"; - address.address_line.emplace_back(kTaiwanStreetLine); - address.postal_code = kPostalCode; - address.locality = kTaiwanCity; - address.administrative_area = kTaiwanAdmin; - address.language_code = "zh-Hant"; - - std::vector expected; - expected.emplace_back(kPostalCode); - expected.push_back(std::string(kTaiwanAdmin).append(kTaiwanCity)); - expected.emplace_back(kTaiwanStreetLine); + const AddressData address{ + .region_code = "TW", + .address_line{kTaiwanStreetLine}, + .administrative_area = kTaiwanAdmin, + .locality = kTaiwanCity, + .postal_code = kPostalCode, + .language_code = "zh-Hant", + }; + + const std::vector expected{ + kPostalCode, + std::string(kTaiwanAdmin).append(kTaiwanCity), + kTaiwanStreetLine, + }; std::vector lines; GetFormattedNationalAddress(address, &lines); @@ -161,17 +174,19 @@ TEST(AddressFormatterTest, GetFormattedNationalAddressLatinFormat) { one_line); // Changing to the Latin variant will change the output. - AddressData latin_address; - latin_address.region_code = "TW"; - latin_address.address_line.emplace_back("No. 33, Section 3 Xinyi Rd"); - latin_address.postal_code = kPostalCode; - latin_address.locality = "Da-an District"; - latin_address.administrative_area = "Taipei City"; - latin_address.language_code = "zh-Latn"; - - std::vector expected_latin; - expected_latin.emplace_back("No. 33, Section 3 Xinyi Rd"); - expected_latin.emplace_back("Da-an District, Taipei City 106"); + const AddressData latin_address{ + .region_code = "TW", + .address_line{"No. 33, Section 3 Xinyi Rd"}, + .administrative_area = "Taipei City", + .locality = "Da-an District", + .postal_code = kPostalCode, + .language_code = "zh-Latn", + }; + + const std::vector expected_latin{ + "No. 33, Section 3 Xinyi Rd", + "Da-an District, Taipei City 106", + }; lines.clear(); GetFormattedNationalAddress(latin_address, &lines); @@ -184,19 +199,23 @@ TEST(AddressFormatterTest, GetFormattedNationalAddressLatinFormat) { } TEST(AddressFormatterTest, GetFormattedNationalAddressMultilingualCountry) { - AddressData address; - address.region_code = "CA"; - address.address_line.emplace_back("5 Rue du Tresor"); - address.address_line.emplace_back("Apt. 4"); - address.administrative_area = "QC"; - address.postal_code = "G1R 123"; - address.locality = "Montmagny"; - address.language_code = "fr"; - - std::vector expected; - expected.emplace_back("5 Rue du Tresor"); - expected.emplace_back("Apt. 4"); - expected.emplace_back("Montmagny QC G1R 123"); + const AddressData address{ + .region_code = "CA", + .address_line{ + "5 Rue du Tresor", + "Apt. 4", + }, + .administrative_area = "QC", + .locality = "Montmagny", + .postal_code = "G1R 123", + .language_code = "fr", + }; + + const std::vector expected{ + "5 Rue du Tresor", + "Apt. 4", + "Montmagny QC G1R 123", + }; std::vector lines; GetFormattedNationalAddress(address, &lines); @@ -204,14 +223,15 @@ TEST(AddressFormatterTest, GetFormattedNationalAddressMultilingualCountry) { } TEST(AddressFormatterTest, GetFormattedNationalAddress_InlineStreetAddress) { - AddressData address; - address.region_code = "CI"; - address.address_line.emplace_back("32 Boulevard Carde"); - address.locality = "Abidjan"; - address.sorting_code = "64"; + const AddressData address{ + .region_code = "CI", + .address_line{"32 Boulevard Carde"}, + .locality = "Abidjan", + .sorting_code = "64", + .language_code = "zh-Hant", + }; - std::vector expected; - expected.emplace_back("64 32 Boulevard Carde Abidjan 64"); + const std::vector expected{"64 32 Boulevard Carde Abidjan 64"}; std::vector lines; GetFormattedNationalAddress(address, &lines); @@ -220,8 +240,7 @@ TEST(AddressFormatterTest, GetFormattedNationalAddress_InlineStreetAddress) { TEST(AddressFormatterTest, GetFormattedNationalAddressMissingFields_LiteralsAroundField) { - AddressData address; - address.region_code = "CH"; + AddressData address{.region_code = "CH"}; std::vector expected; std::vector lines; GetFormattedNationalAddress(address, &lines); @@ -245,8 +264,7 @@ TEST(AddressFormatterTest, TEST(AddressFormatterTest, GetFormattedNationalAddressMissingFields_LiteralsBetweenFields) { - AddressData address; - address.region_code = "US"; + AddressData address{.region_code = "US"}; std::vector expected; std::vector lines; GetFormattedNationalAddress(address, &lines); @@ -281,10 +299,8 @@ TEST(AddressFormatterTest, TEST(AddressFormatterTest, GetFormattedNationalAddressMissingFields_LiteralOnSeparateLine) { - AddressData address; - address.region_code = "AX"; - std::vector expected; - expected.emplace_back("ÅLAND"); + AddressData address{.region_code = "AX"}; + std::vector expected{"ÅLAND"}; std::vector lines; GetFormattedNationalAddress(address, &lines); EXPECT_EQ(expected, lines); @@ -302,9 +318,10 @@ TEST(AddressFormatterTest, TEST(AddressFormatterTest, GetFormattedNationalAddressMissingFields_LiteralBeforeField) { - AddressData address; - address.region_code = "JP"; - address.language_code = "ja"; + AddressData address{ + .region_code = "JP", + .language_code = "ja", + }; std::vector expected; std::vector lines; GetFormattedNationalAddress(address, &lines); @@ -328,13 +345,13 @@ TEST(AddressFormatterTest, TEST(AddressFormatterTest, GetFormattedNationalAddress_LiteralBeforeOneAddressLine) { - AddressData address; - address.region_code = "JP"; - address.language_code = "ja_Latn"; - address.administrative_area = "Tokyo"; - address.address_line = {"Roppongi Hills"}; - std::vector expected; - expected.emplace_back("Roppongi Hills, Tokyo"); + const AddressData address{ + .region_code = "JP", + .address_line{"Roppongi Hills"}, + .administrative_area = "Tokyo", + .language_code = "ja_Latn", + }; + const std::vector expected{"Roppongi Hills, Tokyo"}; std::vector lines; GetFormattedNationalAddress(address, &lines); EXPECT_EQ(expected, lines); @@ -342,14 +359,19 @@ TEST(AddressFormatterTest, TEST(AddressFormatterTest, GetFormattedNationalAddress_LiteralBeforeTwoAddressLines) { - AddressData address; - address.region_code = "JP"; - address.language_code = "ja_Latn"; - address.administrative_area = "Tokyo"; - address.address_line = {"Roppongi Hills", "Mori Tower"}; - std::vector expected; - expected.emplace_back("Roppongi Hills"); - expected.emplace_back("Mori Tower, Tokyo"); + const AddressData address{ + .region_code = "JP", + .address_line{ + "Roppongi Hills", + "Mori Tower", + }, + .administrative_area = "Tokyo", + .language_code = "ja_Latn", + }; + const std::vector expected{ + "Roppongi Hills", + "Mori Tower, Tokyo", + }; std::vector lines; GetFormattedNationalAddress(address, &lines); EXPECT_EQ(expected, lines); @@ -357,8 +379,7 @@ TEST(AddressFormatterTest, TEST(AddressFormatterTest, GetFormattedNationalAddressMissingFields_DuplicateField) { - AddressData address; - address.region_code = "CI"; + AddressData address{.region_code = "CI"}; std::vector expected; std::vector lines; GetFormattedNationalAddress(address, &lines); diff --git a/cpp/test/address_input_helper_test.cc b/cpp/test/address_input_helper_test.cc index 7c32a796..5d249e69 100644 --- a/cpp/test/address_input_helper_test.cc +++ b/cpp/test/address_input_helper_test.cc @@ -69,9 +69,10 @@ class AddressInputHelperTest : public testing::Test { }; TEST_F(AddressInputHelperTest, AddressWithMissingPostalCode) { - AddressData address; - address.region_code = "CX"; - address.administrative_area = "WA"; + AddressData address{ + .region_code = "CX", + .administrative_area = "WA", + }; // There is only one postal code for Christmas Island AddressData expected = address; @@ -81,11 +82,11 @@ TEST_F(AddressInputHelperTest, AddressWithMissingPostalCode) { } TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingAdmin) { - AddressData address; - address.region_code = "US"; - address.postal_code = "58098"; - // Other data should be left alone. - address.address_line.emplace_back("10 High St"); + AddressData address{ + .region_code = "US", + .address_line{"10 High St"}, + .postal_code = "58098", + }; // North Dakota has post codes starting with 58. AddressData expected = address; @@ -102,9 +103,10 @@ TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingAdmin) { } TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingLowerLevel) { - AddressData address; - address.region_code = "TW"; - address.postal_code = "53012"; + AddressData address{ + .region_code = "TW", + .postal_code = "53012", + }; // This matches 二水鄉 - Ershuei Township. AddressData expected = address; @@ -124,10 +126,11 @@ TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingLowerLevel) { } TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingLowerLevelLatin) { - AddressData address; - address.region_code = "TW"; - address.postal_code = "53012"; - address.language_code = "zh-Latn"; + AddressData address{ + .region_code = "TW", + .postal_code = "53012", + .language_code = "zh-Latn", + }; // This matches 二水鄉 - Ershuei Township. AddressData expected = address; @@ -147,10 +150,11 @@ TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingLowerLevelLatin) { } TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingDependentLocality) { - AddressData address; - address.region_code = "KR"; - // This matches Danwon-gu district. - address.postal_code = "425-111"; + AddressData address{ + .region_code = "KR", + // This matches Danwon-gu district. + .postal_code = "425-111", + }; AddressData expected = address; // The province is Gyeonggi - 경기도. @@ -163,10 +167,11 @@ TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingDependentLocality) { FillAddress(&address); EXPECT_EQ(expected, address); - AddressData address_ko_latn; - address_ko_latn.region_code = "KR"; - address_ko_latn.postal_code = "425-111"; - address_ko_latn.language_code = "ko-Latn"; + AddressData address_ko_latn{ + .region_code = "KR", + .postal_code = "425-111", + .language_code = "ko-Latn", + }; expected = address_ko_latn; // The province is Gyeonggi - 경기도. @@ -181,10 +186,11 @@ TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingDependentLocality) { } TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingMultipleValues) { - AddressData address; - address.region_code = "KR"; - // This matches Wando-gun and Ganjin-gun, both in Jeonnam province. - address.postal_code = "527-111"; + AddressData address{ + .region_code = "KR", + // This matches Wando-gun and Ganjin-gun, both in Jeonnam province. + .postal_code = "527-111", + }; AddressData expected = address; // The province, Jeonnam - 전라남도 - is known, but we have several locality @@ -195,9 +201,10 @@ TEST_F(AddressInputHelperTest, AddressWithPostalCodeMatchingMultipleValues) { } TEST_F(AddressInputHelperTest, AddressWithInvalidPostalCode) { - AddressData address; - address.postal_code = "970"; - address.region_code = "US"; + AddressData address{ + .region_code = "US", + .postal_code = "970", + }; // We don't expect any changes, since the postal code couldn't be determined // as valid. @@ -207,9 +214,10 @@ TEST_F(AddressInputHelperTest, AddressWithInvalidPostalCode) { } TEST_F(AddressInputHelperTest, AddressWithNoPostalCodeValidation) { - AddressData address; - address.postal_code = "123"; - address.region_code = "GA"; + AddressData address{ + .region_code = "GA", + .postal_code = "123", + }; // We don't expect any changes, since the postal code couldn't be determined // as valid - we have no information about postal codes in Gabon (or even that @@ -220,9 +228,10 @@ TEST_F(AddressInputHelperTest, AddressWithNoPostalCodeValidation) { } TEST_F(AddressInputHelperTest, AddressWithInvalidOrMissingRegionCode) { - AddressData address; - address.postal_code = "XXX"; - address.administrative_area = "YYY"; + AddressData address{ + .administrative_area = "YYY", + .postal_code = "XXX", + }; // We don't expect any changes, since there was no region code. AddressData expected = address; @@ -237,10 +246,11 @@ TEST_F(AddressInputHelperTest, AddressWithInvalidOrMissingRegionCode) { } TEST_F(AddressInputHelperTest, RegionWithUnusedAdminAreaNames) { - AddressData address; - address.region_code = "CH"; - address.postal_code = "1111"; - address.language_code = "de-CH"; + AddressData address{ + .region_code = "CH", + .postal_code = "1111", + .language_code = "de-CH", + }; // Administrative area should not be filled because it's not used. Locality // should not be filled because there's no data for it. @@ -289,27 +299,28 @@ TEST_F(AddressInputHelperMockDataTest, PostalCodeSharedAcrossDifferentHierarchies) { // Note that this data is in the format of data that would be returned from // the aggregate server. - source_->data_.emplace( - // We use KR since we need a country where we format all fields down to - // dependent locality, or the hierarchy won't be loaded. - "data/KR", - R"({"data/KR": )" - // The top-level ZIP expression must be present for sub-key matches to be - // evaluated. - R"({"id":"data/KR", "sub_keys":"A~B", "zip":"\\d{5}"}, )" - R"("data/KR/A": )" - R"({"id":"data/KR/A", "sub_keys":"A1"}, )" - R"("data/KR/A/A1": )" - R"({"id":"data/KR/A/A1", "zip":"1"}, )" - R"("data/KR/B": )" - R"({"id":"data/KR/B", "sub_keys":"B1"}, )" - R"("data/KR/B/B1": )" - R"({"id":"data/KR/B/B1", "zip":"12"}})"); - - AddressData address; - address.region_code = "KR"; - address.postal_code = "12345"; - address.administrative_area = ""; + source_->data_ = { + {// We use KR since we need a country where we format all fields down to + // dependent locality, or the hierarchy won't be loaded. + "data/KR", + R"({"data/KR": )" + // The top-level ZIP expression must be present for sub-key matches to be + // evaluated. + R"({"id":"data/KR", "sub_keys":"A~B", "zip":"\\d{5}"}, )" + R"("data/KR/A": )" + R"({"id":"data/KR/A", "sub_keys":"A1"}, )" + R"("data/KR/A/A1": )" + R"({"id":"data/KR/A/A1", "zip":"1"}, )" + R"("data/KR/B": )" + R"({"id":"data/KR/B", "sub_keys":"B1"}, )" + R"("data/KR/B/B1": )" + R"({"id":"data/KR/B/B1", "zip":"12"}})"}}; + + AddressData address{ + .region_code = "KR", + .administrative_area = "", + .postal_code = "12345", + }; AddressData expected = address; FillAddress(&address); @@ -323,34 +334,35 @@ TEST_F(AddressInputHelperMockDataTest, // Create data where one state matches the ZIP code, but the other doesn't: // within the state which does, multiple cities and sub-cities match. The only // thing we can be certain of is therefore the state. - source_->data_.emplace( - // We use KR since we need a country where we format all fields down to - // dependent locality, or the hierarchy won't be loaded. - "data/KR", - R"({"data/KR": )" - // The top-level ZIP expression must be present for sub-key matches to be - // evaluated. - R"({"id":"data/KR", "sub_keys":"A~B", "zip":"\\d{5}"}, )" - R"("data/KR/A": )" - R"({"id":"data/KR/A", "sub_keys":"A1~A2"}, )" - R"("data/KR/A/A1": )" - R"({"id":"data/KR/A/A1", "sub_keys":"A1a", "zip":"1"}, )" - // This key matches the ZIP code. - R"("data/KR/A/A1/A1a": )" - R"({"id":"data/KR/A/A1/A1a", "zip":"12"}, )" - R"("data/KR/A/A2": )" - R"({"id":"data/KR/A/A2", "sub_keys":"A2a", "zip":"1"}, )" - // This key, also in state A, but in city A2, matches the ZIP code. - R"("data/KR/A/A2/A2a": )" - R"({"id":"data/KR/A/A2/A2a", "zip":"123"}, )" - // This key, in state B, does not match the ZIP code. - R"("data/KR/B": )" - R"({"id":"data/KR/B", "zip":"2"}})"); - - AddressData address; - address.region_code = "KR"; - address.postal_code = "12345"; - address.administrative_area = ""; + source_->data_ = { + {// We use KR since we need a country where we format all fields down to + // dependent locality, or the hierarchy won't be loaded. + "data/KR", + R"({"data/KR": )" + // The top-level ZIP expression must be present for sub-key matches to be + // evaluated. + R"({"id":"data/KR", "sub_keys":"A~B", "zip":"\\d{5}"}, )" + R"("data/KR/A": )" + R"({"id":"data/KR/A", "sub_keys":"A1~A2"}, )" + R"("data/KR/A/A1": )" + R"({"id":"data/KR/A/A1", "sub_keys":"A1a", "zip":"1"}, )" + // This key matches the ZIP code. + R"("data/KR/A/A1/A1a": )" + R"({"id":"data/KR/A/A1/A1a", "zip":"12"}, )" + R"("data/KR/A/A2": )" + R"({"id":"data/KR/A/A2", "sub_keys":"A2a", "zip":"1"}, )" + // This key, also in state A, but in city A2, matches the ZIP code. + R"("data/KR/A/A2/A2a": )" + R"({"id":"data/KR/A/A2/A2a", "zip":"123"}, )" + // This key, in state B, does not match the ZIP code. + R"("data/KR/B": )" + R"({"id":"data/KR/B", "zip":"2"}})"}}; + + AddressData address{ + .region_code = "KR", + .administrative_area = "", + .postal_code = "12345", + }; AddressData expected = address; expected.administrative_area = "A"; diff --git a/cpp/test/address_normalizer_test.cc b/cpp/test/address_normalizer_test.cc index 099bca36..e237191c 100644 --- a/cpp/test/address_normalizer_test.cc +++ b/cpp/test/address_normalizer_test.cc @@ -62,9 +62,10 @@ TEST_F(AddressNormalizerTest, CountryWithNoLanguageNoAdminArea) { // This test is to make sure that Normalize would not crash for the case where // there is neither a language, nor an admin area listed for the rule. supplier_.LoadRules("IR", *loaded_); - i18n::addressinput::AddressData address; - address.region_code = "IR"; - address.administrative_area = "Tehran"; + AddressData address{ + .region_code = "IR", + .administrative_area = "Tehran", + }; normalizer_.Normalize(&address); EXPECT_EQ("Tehran", address.administrative_area); } @@ -72,10 +73,11 @@ TEST_F(AddressNormalizerTest, CountryWithNoLanguageNoAdminArea) { TEST_F(AddressNormalizerTest, BrazilAdminAreaAndLocality) { // A country with more than two levels of data supplier_.LoadRules("BR", *loaded_); - i18n::addressinput::AddressData address; - address.region_code = "BR"; - address.administrative_area = "Maranhão"; - address.locality = "Cantanhede"; + AddressData address{ + .region_code = "BR", + .administrative_area = "Maranhão", + .locality = "Cantanhede", + }; normalizer_.Normalize(&address); EXPECT_EQ("MA", address.administrative_area); // For Maranhão EXPECT_EQ("Cantanhede", address.locality); @@ -83,10 +85,11 @@ TEST_F(AddressNormalizerTest, BrazilAdminAreaAndLocality) { TEST_F(AddressNormalizerTest, FrenchCanadaNameLanguageNotConsistent) { supplier_.LoadRules("CA", *loaded_); - i18n::addressinput::AddressData address; - address.language_code = "en-CA"; - address.region_code = "CA"; - address.administrative_area = "Nouveau-Brunswick"; + AddressData address{ + .region_code = "CA", + .administrative_area = "Nouveau-Brunswick", + .language_code = "en-CA", + }; normalizer_.Normalize(&address); // Normalize will look into every available language for that region, // not only the supplied or the default language. @@ -95,31 +98,34 @@ TEST_F(AddressNormalizerTest, FrenchCanadaNameLanguageNotConsistent) { TEST_F(AddressNormalizerTest, FrenchCanadaName) { supplier_.LoadRules("CA", *loaded_); - i18n::addressinput::AddressData address; - address.language_code = "fr-CA"; - address.region_code = "CA"; - address.administrative_area = "Nouveau-Brunswick"; + AddressData address{ + .region_code = "CA", + .administrative_area = "Nouveau-Brunswick", + .language_code = "fr-CA", + }; normalizer_.Normalize(&address); EXPECT_EQ("NB", address.administrative_area); } TEST_F(AddressNormalizerTest, FrenchCanadaNameLanguageNotListed) { supplier_.LoadRules("CA", *loaded_); - i18n::addressinput::AddressData address; - address.language_code = "fa-CA"; - address.region_code = "CA"; - address.administrative_area = "Colombie-Britannique"; + AddressData address{ + .region_code = "CA", + .administrative_area = "Colombie-Britannique", + .language_code = "fa-CA", + }; normalizer_.Normalize(&address); EXPECT_EQ("BC", address.administrative_area); } TEST_F(AddressNormalizerTest, CaliforniaShortNameCa) { supplier_.LoadRules("US", *loaded_); - AddressData address; - address.language_code = "en-US"; - address.region_code = "US"; - address.administrative_area = "California"; - address.locality = "Mountain View"; + AddressData address{ + .region_code = "US", + .administrative_area = "California", + .locality = "Mountain View", + .language_code = "en-US", + }; normalizer_.Normalize(&address); EXPECT_EQ("CA", address.administrative_area); } @@ -128,47 +134,52 @@ TEST_F(AddressNormalizerTest, CountryWithNonStandardData) { // This test is to make sure that Normalize would not crash for the case where // the data is not standard and key--language does not exist. supplier_.LoadRules("HK", *loaded_); - i18n::addressinput::AddressData address; - address.region_code = "HK"; - address.administrative_area = "香港島"; + AddressData address{ + .region_code = "HK", + .administrative_area = "香港島", + }; normalizer_.Normalize(&address); EXPECT_EQ("香港島", address.administrative_area); } TEST_F(AddressNormalizerTest, GangwonLatinNameStaysUnchanged) { supplier_.LoadRules("KR", *loaded_); - AddressData address; - address.language_code = "ko-Latn"; - address.region_code = "KR"; - address.administrative_area = "Gangwon"; + AddressData address{ + .region_code = "KR", + .administrative_area = "Gangwon", + .language_code = "ko-Latn", + }; normalizer_.Normalize(&address); EXPECT_EQ("Gangwon", address.administrative_area); } TEST_F(AddressNormalizerTest, GangwonKoreanName) { supplier_.LoadRules("KR", *loaded_); - AddressData address; - address.language_code = "ko-KR"; - address.region_code = "KR"; - address.administrative_area = "강원"; + AddressData address{ + .region_code = "KR", + .administrative_area = "강원", + .language_code = "ko-KR", + }; normalizer_.Normalize(&address); EXPECT_EQ("강원도", address.administrative_area); } TEST_F(AddressNormalizerTest, DontSwitchLatinScriptForUnknownLanguage) { supplier_.LoadRules("KR", *loaded_); - AddressData address; - address.region_code = "KR"; - address.administrative_area = "Gangwon"; + AddressData address{ + .region_code = "KR", + .administrative_area = "Gangwon", + }; normalizer_.Normalize(&address); EXPECT_EQ("Gangwon", address.administrative_area); } TEST_F(AddressNormalizerTest, DontSwitchLocalScriptForUnknownLanguage) { supplier_.LoadRules("KR", *loaded_); - AddressData address; - address.region_code = "KR"; - address.administrative_area = "강원"; + AddressData address{ + .region_code = "KR", + .administrative_area = "강원", + }; normalizer_.Normalize(&address); EXPECT_EQ("강원도", address.administrative_area); } diff --git a/cpp/test/address_validator_test.cc b/cpp/test/address_validator_test.cc index 0ccdcafd..3b24c859 100644 --- a/cpp/test/address_validator_test.cc +++ b/cpp/test/address_validator_test.cc @@ -170,7 +170,7 @@ INSTANTIATE_TEST_SUITE_P(PreloadSupplier, AddressValidatorTest, testing::Values(&PreloadValidatorWrapper::Build)); TEST_P(AddressValidatorTest, EmptyAddress) { - expected_.emplace(COUNTRY, MISSING_REQUIRED_FIELD); + expected_ = {{COUNTRY, MISSING_REQUIRED_FIELD}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -178,9 +178,9 @@ TEST_P(AddressValidatorTest, EmptyAddress) { } TEST_P(AddressValidatorTest, InvalidCountry) { - address_.region_code = "QZ"; + address_ = {.region_code = "QZ"}; - expected_.emplace(COUNTRY, UNKNOWN_VALUE); + expected_ = {{COUNTRY, UNKNOWN_VALUE}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -188,16 +188,20 @@ TEST_P(AddressValidatorTest, InvalidCountry) { } TEST_P(AddressValidatorTest, ValidAddressUS) { - address_.region_code = "US"; - address_.administrative_area = "CA"; // California - address_.locality = "Mountain View"; - address_.postal_code = "94043"; - address_.address_line.emplace_back("1600 Amphitheatre Parkway"); - address_.language_code = "en"; + address_ = { + .region_code = "US", + .address_line{"1600 Amphitheatre Parkway"}, + .administrative_area = "CA", // California + .locality = "Mountain View", + .postal_code = "94043", + .language_code = "en", + }; if (GetParam() == &PreloadValidatorWrapper::Build) { - expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); + expected_ = { + {LOCALITY, UNSUPPORTED_FIELD}, + {DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}, + }; } ASSERT_NO_FATAL_FAILURE(Validate()); @@ -206,13 +210,17 @@ TEST_P(AddressValidatorTest, ValidAddressUS) { } TEST_P(AddressValidatorTest, InvalidAddressUS) { - address_.region_code = "US"; - address_.postal_code = "123"; - - expected_.emplace(ADMIN_AREA, MISSING_REQUIRED_FIELD); - expected_.emplace(LOCALITY, MISSING_REQUIRED_FIELD); - expected_.emplace(STREET_ADDRESS, MISSING_REQUIRED_FIELD); - expected_.emplace(POSTAL_CODE, INVALID_FORMAT); + address_ = { + .region_code = "US", + .postal_code = "123", + }; + + expected_ = { + {ADMIN_AREA, MISSING_REQUIRED_FIELD}, + {LOCALITY, MISSING_REQUIRED_FIELD}, + {STREET_ADDRESS, MISSING_REQUIRED_FIELD}, + {POSTAL_CODE, INVALID_FORMAT}, + }; if (GetParam() == &PreloadValidatorWrapper::Build) { expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); @@ -225,15 +233,19 @@ TEST_P(AddressValidatorTest, InvalidAddressUS) { } TEST_P(AddressValidatorTest, ValidAddressCH) { - address_.region_code = "CH"; - address_.locality = "ZH"; // Zürich - address_.postal_code = "8002"; - address_.address_line.emplace_back("Brandschenkestrasse 110"); - address_.language_code = "de"; + address_ = { + .region_code = "CH", + .address_line{"Brandschenkestrasse 110"}, + .locality = "ZH", // Zürich + .postal_code = "8002", + .language_code = "de", + }; if (GetParam() == &PreloadValidatorWrapper::Build) { - expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); + expected_ = { + {LOCALITY, UNSUPPORTED_FIELD}, + {DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}, + }; } ASSERT_NO_FATAL_FAILURE(Validate()); @@ -242,12 +254,16 @@ TEST_P(AddressValidatorTest, ValidAddressCH) { } TEST_P(AddressValidatorTest, InvalidAddressCH) { - address_.region_code = "CH"; - address_.postal_code = "123"; + address_ = { + .region_code = "CH", + .postal_code = "123", + }; - expected_.emplace(STREET_ADDRESS, MISSING_REQUIRED_FIELD); - expected_.emplace(POSTAL_CODE, INVALID_FORMAT); - expected_.emplace(LOCALITY, MISSING_REQUIRED_FIELD); + expected_ = { + {STREET_ADDRESS, MISSING_REQUIRED_FIELD}, + {POSTAL_CODE, INVALID_FORMAT}, + {LOCALITY, MISSING_REQUIRED_FIELD}, + }; if (GetParam() == &PreloadValidatorWrapper::Build) { expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); @@ -260,16 +276,20 @@ TEST_P(AddressValidatorTest, InvalidAddressCH) { } TEST_P(AddressValidatorTest, ValidPostalCodeMX) { - address_.region_code = "MX"; - address_.locality = "Villahermosa"; - address_.administrative_area = "TAB"; // Tabasco - address_.postal_code = "86070"; - address_.address_line.emplace_back("Av Gregorio Méndez Magaña 1400"); - address_.language_code = "es"; + address_ = { + .region_code = "MX", + .address_line{"Av Gregorio Méndez Magaña 1400"}, + .administrative_area = "TAB", // Tabasco + .locality = "Villahermosa", + .postal_code = "86070", + .language_code = "es", + }; if (GetParam() == &PreloadValidatorWrapper::Build) { - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); - expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); + expected_ = { + {DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}, + {LOCALITY, UNSUPPORTED_FIELD}, + }; } ASSERT_NO_FATAL_FAILURE(Validate()); @@ -278,14 +298,17 @@ TEST_P(AddressValidatorTest, ValidPostalCodeMX) { } TEST_P(AddressValidatorTest, MismatchingPostalCodeMX) { - address_.region_code = "MX"; - address_.locality = "Villahermosa"; - address_.administrative_area = "TAB"; // Tabasco - address_.postal_code = "80000"; - address_.address_line.emplace_back("Av Gregorio Méndez Magaña 1400"); - address_.language_code = "es"; - - expected_.emplace(POSTAL_CODE, MISMATCHING_VALUE); + address_ = { + .region_code = "MX", + .address_line{"Av Gregorio Méndez Magaña 1400"}, + .administrative_area = "TAB", // Tabasco + .locality = "Villahermosa", + .postal_code = "80000", + .language_code = "es", + }; + + expected_ = {{POSTAL_CODE, MISMATCHING_VALUE}}; + if (GetParam() == &PreloadValidatorWrapper::Build) { expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); @@ -297,12 +320,14 @@ TEST_P(AddressValidatorTest, MismatchingPostalCodeMX) { } TEST_P(AddressValidatorTest, ValidateFilter) { - address_.region_code = "CH"; - address_.postal_code = "123"; + address_ = { + .region_code = "CH", + .postal_code = "123", + }; - filter_.emplace(POSTAL_CODE, INVALID_FORMAT); + filter_ = {{POSTAL_CODE, INVALID_FORMAT}}; - expected_.emplace(POSTAL_CODE, INVALID_FORMAT); + expected_ = {{POSTAL_CODE, INVALID_FORMAT}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -310,17 +335,21 @@ TEST_P(AddressValidatorTest, ValidateFilter) { } TEST_P(AddressValidatorTest, ValidateClearsProblems) { - address_.region_code = "CH"; - address_.locality = "ZH"; // Zürich - address_.postal_code = "123"; - address_.address_line.emplace_back("Brandschenkestrasse 110"); - address_.language_code = "de"; - - problems_.emplace(LOCALITY, UNEXPECTED_FIELD); - problems_.emplace(LOCALITY, MISSING_REQUIRED_FIELD); - problems_.emplace(STREET_ADDRESS, MISSING_REQUIRED_FIELD); - - expected_.emplace(POSTAL_CODE, INVALID_FORMAT); + address_ = { + .region_code = "CH", + .address_line{"Brandschenkestrasse 110"}, + .locality = "ZH", // Zürich + .postal_code = "123", + .language_code = "de", + }; + + problems_ = { + {LOCALITY, UNEXPECTED_FIELD}, + {LOCALITY, MISSING_REQUIRED_FIELD}, + {STREET_ADDRESS, MISSING_REQUIRED_FIELD}, + }; + + expected_ = {{POSTAL_CODE, INVALID_FORMAT}}; if (GetParam() == &PreloadValidatorWrapper::Build) { expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); @@ -333,15 +362,19 @@ TEST_P(AddressValidatorTest, ValidateClearsProblems) { } TEST_P(AddressValidatorTest, ValidKanjiAddressJP) { - address_.region_code = "JP"; - address_.administrative_area = "徳島県"; - address_.postal_code = "770-0847"; - address_.address_line.emplace_back("徳島市..."); - address_.language_code = "ja"; + address_ = { + .region_code = "JP", + .address_line{"徳島市..."}, + .administrative_area = "徳島県", + .postal_code = "770-0847", + .language_code = "ja", + }; if (GetParam() == &PreloadValidatorWrapper::Build) { - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); - expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); + expected_ = { + {DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}, + {LOCALITY, UNSUPPORTED_FIELD}, + }; } ASSERT_NO_FATAL_FAILURE(Validate()); @@ -354,14 +387,18 @@ TEST_P(AddressValidatorTest, ValidLatinAddressJP) { // address metadata server to map Latin script names to local script names. if (GetParam() == &OndemandValidatorWrapper::Build) return; - address_.region_code = "JP"; - address_.administrative_area = "Tokushima"; - address_.postal_code = "770-0847"; - address_.address_line.emplace_back("...Tokushima"); - address_.language_code = "ja-Latn"; + address_ = { + .region_code = "JP", + .address_line{"...Tokushima"}, + .administrative_area = "Tokushima", + .postal_code = "770-0847", + .language_code = "ja-Latn", + }; - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); - expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); + expected_ = { + {DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}, + {LOCALITY, UNSUPPORTED_FIELD}, + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -373,14 +410,16 @@ TEST_P(AddressValidatorTest, ValidAddressBR) { // address metadata server to map natural language names to metadata IDs. if (GetParam() == &OndemandValidatorWrapper::Build) return; - address_.region_code = "BR"; - address_.administrative_area = "São Paulo"; - address_.locality = "Presidente Prudente"; - address_.postal_code = "19063-008"; - address_.address_line.emplace_back("Rodovia Raposo Tavares, 6388-6682"); - address_.language_code = "pt"; + address_ = { + .region_code = "BR", + .address_line{"Rodovia Raposo Tavares, 6388-6682"}, + .administrative_area = "São Paulo", + .locality = "Presidente Prudente", + .postal_code = "19063-008", + .language_code = "pt", + }; - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); + expected_ = {{DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -392,15 +431,19 @@ TEST_P(AddressValidatorTest, ValidAddressCA_en) { // address metadata server to map natural language names to metadata IDs. if (GetParam() == &OndemandValidatorWrapper::Build) return; - address_.region_code = "CA"; - address_.administrative_area = "New Brunswick"; - address_.locality = "Saint John County"; - address_.postal_code = "E2L 4Z6"; - address_.address_line.emplace_back("..."); - address_.language_code = "en"; + address_ = { + .region_code = "CA", + .address_line{"..."}, + .administrative_area = "New Brunswick", + .locality = "Saint John County", + .postal_code = "E2L 4Z6", + .language_code = "en", + }; - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); - expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); + expected_ = { + {DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}, + {LOCALITY, UNSUPPORTED_FIELD}, + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -412,15 +455,19 @@ TEST_P(AddressValidatorTest, ValidAddressCA_fr) { // address metadata server to map natural language names to metadata IDs. if (GetParam() == &OndemandValidatorWrapper::Build) return; - address_.region_code = "CA"; - address_.administrative_area = "Nouveau-Brunswick"; - address_.locality = "Comté de Saint-Jean"; - address_.postal_code = "E2L 4Z6"; - address_.address_line.emplace_back("..."); - address_.language_code = "fr"; - - expected_.emplace(DEPENDENT_LOCALITY, UNSUPPORTED_FIELD); - expected_.emplace(LOCALITY, UNSUPPORTED_FIELD); + address_ = { + .region_code = "CA", + .address_line{"..."}, + .administrative_area = "Nouveau-Brunswick", + .locality = "Comté de Saint-Jean", + .postal_code = "E2L 4Z6", + .language_code = "fr", + }; + + expected_ = { + {DEPENDENT_LOCALITY, UNSUPPORTED_FIELD}, + {LOCALITY, UNSUPPORTED_FIELD}, + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); diff --git a/cpp/test/localization_test.cc b/cpp/test/localization_test.cc index 385e5025..26daa9d0 100644 --- a/cpp/test/localization_test.cc +++ b/cpp/test/localization_test.cc @@ -127,8 +127,7 @@ TEST_F(LocalizationTest, InvalidMessageIsEmptyString) { TEST(LocalizationGetErrorMessageTest, MissingRequiredPostalCode) { Localization localization; - AddressData address; - address.region_code = "CH"; + const AddressData address{.region_code = "CH"}; EXPECT_EQ("You must provide a postal code, for example 2544." " Don't know your postal code? Find it out" " " @@ -148,8 +147,7 @@ TEST(LocalizationGetErrorMessageTest, MissingRequiredPostalCode) { TEST(LocalizationGetErrorMessageTest, MissingRequiredZipCode) { Localization localization; - AddressData address; - address.region_code = "US"; + const AddressData address{.region_code = "US"}; EXPECT_EQ("You must provide a ZIP code, for example 95014." " Don't know your ZIP code? Find it out" " other_fields; - other_fields.push_back(COUNTRY); - other_fields.push_back(ADMIN_AREA); - other_fields.push_back(LOCALITY); - other_fields.push_back(DEPENDENT_LOCALITY); - other_fields.push_back(SORTING_CODE); - other_fields.push_back(STREET_ADDRESS); - other_fields.push_back(ORGANIZATION); - other_fields.push_back(RECIPIENT); + const AddressData address{.region_code = "US"}; + const std::vector other_fields{ + COUNTRY, + ADMIN_AREA, + LOCALITY, + DEPENDENT_LOCALITY, + SORTING_CODE, + STREET_ADDRESS, + ORGANIZATION, + RECIPIENT, + }; for (AddressField field : other_fields) { EXPECT_EQ("You can't leave this empty.", localization.GetErrorMessage( @@ -198,18 +196,19 @@ TEST(LocalizationGetErrorMessageTest, MissingRequiredOtherFields) { TEST(LocalizationGetErrorMessageTest, UnknownValueOtherFields) { Localization localization; - AddressData address; - address.region_code = "US"; - address.administrative_area = "bad admin area"; - address.locality = "bad locality"; - address.dependent_locality = "bad dependent locality"; - address.sorting_code = "bad sorting code"; - std::vector address_line; - address_line.emplace_back("bad address line 1"); - address_line.emplace_back("bad address line 2"); - address.address_line = address_line; - address.organization = "bad organization"; - address.recipient = "bad recipient"; + const AddressData address{ + .region_code = "US", + .address_line{ + "bad address line 1", + "bad address line 2", + }, + .administrative_area = "bad admin area", + .locality = "bad locality", + .dependent_locality = "bad dependent locality", + .sorting_code = "bad sorting code", + .organization = "bad organization", + .recipient = "bad recipient", + }; EXPECT_EQ("US " "is not recognized as a known value for this field.", localization.GetErrorMessage( @@ -342,8 +341,7 @@ TEST(LocalizationGetErrorMessageTest, UnknownValueOtherFields) { TEST(LocalizationGetErrorMessageTest, InvalidFormatPostalCode) { Localization localization; - AddressData address; - address.region_code = "CH"; + const AddressData address{.region_code = "CH"}; EXPECT_EQ("This postal code format is not recognized. Example " "of a valid postal code: 2544." " Don't know your postal code? Find it out" @@ -365,8 +363,7 @@ TEST(LocalizationGetErrorMessageTest, InvalidFormatPostalCode) { TEST(LocalizationGetErrorMessageTest, InvalidFormatZipCode) { Localization localization; - AddressData address; - address.region_code = "US"; + const AddressData address{.region_code = "US"}; EXPECT_EQ("This ZIP code format is not recognized. Example of " "a valid ZIP code: 95014." " Don't know your ZIP code? Find it out" @@ -388,8 +385,7 @@ TEST(LocalizationGetErrorMessageTest, InvalidFormatZipCode) { TEST(LocalizationGetErrorMessageTest, MismatchingValuePostalCode) { Localization localization; - AddressData address; - address.region_code = "CH"; + const AddressData address{.region_code = "CH"}; EXPECT_EQ("This postal code does not appear to match the rest " "of this address." " Don't know your postal code? Find it out" @@ -416,8 +412,7 @@ TEST(LocalizationGetErrorMessageTest, MismatchingValuePostalCode) { TEST(LocalizationGetErrorMessageTest, MismatchingValueZipCode) { Localization localization; - AddressData address; - address.region_code = "US"; + const AddressData address{.region_code = "US"}; EXPECT_EQ("This ZIP code does not appear to match the rest of " "this address." " Don't know your ZIP code? Find it out" @@ -444,17 +439,17 @@ TEST(LocalizationGetErrorMessageTest, MismatchingValueZipCode) { TEST(LocalizationGetErrorMessageTest, UsesPOBoxOtherFields) { Localization localization; - AddressData address; - address.region_code = "US"; - std::vector other_fields; - other_fields.push_back(COUNTRY); - other_fields.push_back(ADMIN_AREA); - other_fields.push_back(LOCALITY); - other_fields.push_back(DEPENDENT_LOCALITY); - other_fields.push_back(SORTING_CODE); - other_fields.push_back(STREET_ADDRESS); - other_fields.push_back(ORGANIZATION); - other_fields.push_back(RECIPIENT); + const AddressData address{.region_code = "US"}; + const std::vector other_fields{ + COUNTRY, + ADMIN_AREA, + LOCALITY, + DEPENDENT_LOCALITY, + SORTING_CODE, + STREET_ADDRESS, + ORGANIZATION, + RECIPIENT, + }; for (AddressField field : other_fields) { EXPECT_EQ("This address line appears to contain a post " "office box. Please use a street" diff --git a/cpp/test/lookup_key_test.cc b/cpp/test/lookup_key_test.cc index c64af0b7..672f14bc 100644 --- a/cpp/test/lookup_key_test.cc +++ b/cpp/test/lookup_key_test.cc @@ -30,15 +30,14 @@ using i18n::addressinput::LookupKey; const size_t kMaxDepth = size(LookupKey::kHierarchy) - 1; TEST(LookupKeyTest, Empty) { - AddressData address; + const AddressData address; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ("data/ZZ", lookup_key.ToKeyString(kMaxDepth)); } TEST(LookupKeyTest, AddressDepth1) { - AddressData address; - address.region_code = "111"; + const AddressData address{.region_code = "111"}; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ(0, lookup_key.GetDepth()); @@ -46,9 +45,10 @@ TEST(LookupKeyTest, AddressDepth1) { } TEST(LookupKeyTest, AddressDepth2) { - AddressData address; - address.region_code = "111"; - address.administrative_area = "222"; + const AddressData address{ + .region_code = "111", + .administrative_area = "222", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ(1, lookup_key.GetDepth()); @@ -56,10 +56,11 @@ TEST(LookupKeyTest, AddressDepth2) { } TEST(LookupKeyTest, AddressDepth3) { - AddressData address; - address.region_code = "111"; - address.administrative_area = "222"; - address.locality = "333"; + const AddressData address{ + .region_code = "111", + .administrative_area = "222", + .locality = "333", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ(2, lookup_key.GetDepth()); @@ -67,11 +68,12 @@ TEST(LookupKeyTest, AddressDepth3) { } TEST(LookupKeyTest, AddressDepth4) { - AddressData address; - address.region_code = "111"; - address.administrative_area = "222"; - address.locality = "333"; - address.dependent_locality = "444"; + const AddressData address{ + .region_code = "111", + .administrative_area = "222", + .locality = "333", + .dependent_locality = "444", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ(3, lookup_key.GetDepth()); @@ -79,11 +81,12 @@ TEST(LookupKeyTest, AddressDepth4) { } TEST(LookupKeyTest, AddressDepthNonContiguous) { - AddressData address; - address.region_code = "111"; - address.administrative_area = "222"; - // No LOCALITY specified. - address.dependent_locality = "444"; + const AddressData address{ + .region_code = "111", + .administrative_area = "222", + // No LOCALITY specified. + .dependent_locality = "444", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ(1, lookup_key.GetDepth()); @@ -91,11 +94,12 @@ TEST(LookupKeyTest, AddressDepthNonContiguous) { } TEST(LookupKeyTest, AddressDepthTerminateOnSlash) { - AddressData address; - address.region_code = "111"; - address.administrative_area = "222"; - address.locality = "3/3"; // No data should be requested for this LOCALITY. - address.dependent_locality = "444"; + const AddressData address{ + .region_code = "111", + .administrative_area = "222", + .locality = "3/3", // No data should be requested for this LOCALITY. + .dependent_locality = "444", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ(1, lookup_key.GetDepth()); @@ -103,11 +107,12 @@ TEST(LookupKeyTest, AddressDepthTerminateOnSlash) { } TEST(LookupKeyTest, RequestDepth) { - AddressData address; - address.region_code = "111"; - address.administrative_area = "222"; - address.locality = "333"; - address.dependent_locality = "444"; + const AddressData address{ + .region_code = "111", + .administrative_area = "222", + .locality = "333", + .dependent_locality = "444", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ("data/111", lookup_key.ToKeyString(0)); @@ -117,11 +122,12 @@ TEST(LookupKeyTest, RequestDepth) { } TEST(LookupKeyTest, WithLanguageCodeDefaultLanguage) { - AddressData address; // Use real data here as the choice of adding a language requires metadata. - address.region_code = "CA"; - address.administrative_area = "ON"; - address.language_code = "en"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "ON", + .language_code = "en", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ("data/CA", lookup_key.ToKeyString(0)); @@ -129,11 +135,12 @@ TEST(LookupKeyTest, WithLanguageCodeDefaultLanguage) { } TEST(LookupKeyTest, WithLanguageCodeAlternateLanguage) { - AddressData address; // Use real data here as the choice of adding a language requires metadata. - address.region_code = "CA"; - address.administrative_area = "ON"; - address.language_code = "fr"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "ON", + .language_code = "fr", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ("data/CA--fr", lookup_key.ToKeyString(0)); @@ -141,11 +148,12 @@ TEST(LookupKeyTest, WithLanguageCodeAlternateLanguage) { } TEST(LookupKeyTest, WithLanguageCodeInvalidLanguage) { - AddressData address; // Use real data here as the choice of adding a language requires metadata. - address.region_code = "CA"; - address.administrative_area = "ON"; - address.language_code = "de"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "ON", + .language_code = "de", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ("data/CA", lookup_key.ToKeyString(0)); @@ -153,29 +161,30 @@ TEST(LookupKeyTest, WithLanguageCodeInvalidLanguage) { } TEST(LookupKeyTest, WithLanguageCodeAlternateLanguageNoState) { - AddressData address; // Use real data here as the choice of adding a language requires metadata. // Afghanistan has multiple languages (including Pashto as an alternative) // but no subregions. - address.region_code = "AF"; - address.language_code = "ps"; + const AddressData address{ + .region_code = "AF", + .language_code = "ps", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ("data/AF", lookup_key.ToKeyString(0)); } TEST(LookupKeyTest, GetRegionCode) { - AddressData address; - address.region_code = "rrr"; + const AddressData address{.region_code = "rrr"}; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ(address.region_code, lookup_key.GetRegionCode()); } TEST(LookupKeyTest, FromAddressClearsExistingNodes) { - AddressData address; - address.region_code = "111"; - address.administrative_area = "222"; + AddressData address{ + .region_code = "111", + .administrative_area = "222", + }; LookupKey lookup_key; lookup_key.FromAddress(address); EXPECT_EQ("data/111/222", lookup_key.ToKeyString(kMaxDepth)); diff --git a/cpp/test/mock_source.h b/cpp/test/mock_source.h index e7b986a6..ac5df271 100644 --- a/cpp/test/mock_source.h +++ b/cpp/test/mock_source.h @@ -33,7 +33,7 @@ namespace addressinput { // // MyClass() : source_(), // data_ready_(BuildCallback(this, &MyClass::OnDataReady)) { -// source_.data_.emplace("data/XA", R"({"id":"data/XA"})"); +// source_.data_ = {{"data/XA", R"({"id":"data/XA"})"}}; // } // // ~MyClass() {} diff --git a/cpp/test/ondemand_supply_task_test.cc b/cpp/test/ondemand_supply_task_test.cc index fd178601..258891ac 100644 --- a/cpp/test/ondemand_supply_task_test.cc +++ b/cpp/test/ondemand_supply_task_test.cc @@ -112,7 +112,7 @@ TEST_F(OndemandSupplyTaskTest, Invalid) { } TEST_F(OndemandSupplyTaskTest, Valid) { - source_->data_.emplace("data/XA", R"({"id":"data/XA"})"); + source_->data_ = {{"data/XA", R"({"id":"data/XA"})"}}; Queue("data/XA"); @@ -132,10 +132,12 @@ TEST_F(OndemandSupplyTaskTest, Valid) { } TEST_F(OndemandSupplyTaskTest, ValidHierarchy) { - source_->data_.emplace("data/XA", R"({"id":"data/XA"})"); - source_->data_.emplace("data/XA/aa", R"({"id":"data/XA/aa"})"); - source_->data_.emplace("data/XA/aa/bb", R"({"id":"data/XA/aa/bb"})"); - source_->data_.emplace("data/XA/aa/bb/cc", R"({"id":"data/XA/aa/bb/cc"})"); + source_->data_ = { + {"data/XA", R"({"id":"data/XA"})"}, + {"data/XA/aa", R"({"id":"data/XA/aa"})"}, + {"data/XA/aa/bb", R"({"id":"data/XA/aa/bb"})"}, + {"data/XA/aa/bb/cc", R"({"id":"data/XA/aa/bb/cc"})"}, + }; Queue("data/XA"); Queue("data/XA/aa"); @@ -168,7 +170,7 @@ TEST_F(OndemandSupplyTaskTest, ValidHierarchy) { } TEST_F(OndemandSupplyTaskTest, InvalidJson1) { - source_->data_.emplace("data/XA", ":"); + source_->data_ = {{"data/XA", ":"}}; success_ = false; @@ -179,8 +181,10 @@ TEST_F(OndemandSupplyTaskTest, InvalidJson1) { } TEST_F(OndemandSupplyTaskTest, InvalidJson2) { - source_->data_.emplace("data/XA", R"({"id":"data/XA"})"); - source_->data_.emplace("data/XA/aa", ":"); + source_->data_ = { + {"data/XA", R"({"id":"data/XA"})"}, + {"data/XA/aa", ":"}, + }; success_ = false; @@ -192,8 +196,10 @@ TEST_F(OndemandSupplyTaskTest, InvalidJson2) { } TEST_F(OndemandSupplyTaskTest, EmptyJsonJustMeansServerKnowsNothingAboutKey) { - source_->data_.emplace("data/XA", R"({"id":"data/XA"})"); - source_->data_.emplace("data/XA/aa", "{}"); + source_->data_ = { + {"data/XA", R"({"id":"data/XA"})"}, + {"data/XA/aa", "{}"}, + }; Queue("data/XA"); Queue("data/XA/aa"); @@ -209,7 +215,7 @@ TEST_F(OndemandSupplyTaskTest, EmptyJsonJustMeansServerKnowsNothingAboutKey) { } TEST_F(OndemandSupplyTaskTest, IfCountryFailsAllFails) { - source_->data_.emplace("data/XA/aa", R"({"id":"data/XA/aa"})"); + source_->data_ = {{"data/XA/aa", R"({"id":"data/XA/aa"})"}}; success_ = false; diff --git a/cpp/test/preload_supplier_test.cc b/cpp/test/preload_supplier_test.cc index eb8b6fbc..9d25ade4 100644 --- a/cpp/test/preload_supplier_test.cc +++ b/cpp/test/preload_supplier_test.cc @@ -75,8 +75,7 @@ class PreloadSupplierTest : public testing::Test { TEST_F(PreloadSupplierTest, GetUsRule) { supplier_.LoadRules("US", *loaded_callback_); LookupKey us_key; - AddressData us_address; - us_address.region_code = "US"; + const AddressData us_address{.region_code = "US"}; us_key.FromAddress(us_address); const Rule* rule = supplier_.GetRule(us_key); ASSERT_TRUE(rule != nullptr); @@ -86,9 +85,10 @@ TEST_F(PreloadSupplierTest, GetUsRule) { TEST_F(PreloadSupplierTest, GetUsCaRule) { supplier_.LoadRules("US", *loaded_callback_); LookupKey ca_key; - AddressData ca_address; - ca_address.region_code = "US"; - ca_address.administrative_area = "CA"; + const AddressData ca_address{ + .region_code = "US", + .administrative_area = "CA", + }; ca_key.FromAddress(ca_address); const Rule* rule = supplier_.GetRule(ca_key); ASSERT_TRUE(rule != nullptr); @@ -98,9 +98,10 @@ TEST_F(PreloadSupplierTest, GetUsCaRule) { TEST_F(PreloadSupplierTest, GetUsCaliforniaRule) { supplier_.LoadRules("US", *loaded_callback_); LookupKey ca_key; - AddressData ca_address; - ca_address.region_code = "US"; - ca_address.administrative_area = "California"; + const AddressData ca_address{ + .region_code = "US", + .administrative_area = "California", + }; ca_key.FromAddress(ca_address); const Rule* rule = supplier_.GetRule(ca_key); ASSERT_TRUE(rule != nullptr); @@ -110,8 +111,7 @@ TEST_F(PreloadSupplierTest, GetUsCaliforniaRule) { TEST_F(PreloadSupplierTest, GetZwRule) { supplier_.LoadRules("ZW", *loaded_callback_); LookupKey zw_key; - AddressData zw_address; - zw_address.region_code = "ZW"; + const AddressData zw_address{.region_code = "ZW"}; zw_key.FromAddress(zw_address); const Rule* rule = supplier_.GetRule(zw_key); ASSERT_TRUE(rule != nullptr); @@ -121,9 +121,10 @@ TEST_F(PreloadSupplierTest, GetZwRule) { TEST_F(PreloadSupplierTest, GetUnknownRule) { supplier_.LoadRules("US", *loaded_callback_); LookupKey unknown_key; - AddressData unknown_address; - unknown_address.region_code = "US"; - unknown_address.administrative_area = "ZZ"; + const AddressData unknown_address{ + .region_code = "US", + .administrative_area = "ZZ", + }; unknown_key.FromAddress(unknown_address); const Rule* rule = supplier_.GetRule(unknown_key); EXPECT_TRUE(rule == nullptr); @@ -132,10 +133,11 @@ TEST_F(PreloadSupplierTest, GetUnknownRule) { TEST_F(PreloadSupplierTest, GetTooPreciseRule) { supplier_.LoadRules("US", *loaded_callback_); LookupKey precise_key; - AddressData precise_address; - precise_address.region_code = "US"; - precise_address.administrative_area = "CA"; - precise_address.locality = "Mountain View"; + const AddressData precise_address{ + .region_code = "US", + .administrative_area = "CA", + .locality = "Mountain View", + }; precise_key.FromAddress(precise_address); const Rule* rule = supplier_.GetRule(precise_key); EXPECT_TRUE(rule == nullptr); @@ -151,9 +153,10 @@ TEST_F(PreloadSupplierTest, GetRulesForRegion) { TEST_F(PreloadSupplierTest, SupplyRegionCode) { supplier_.LoadRules("CA", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CA"; - address.administrative_area = "NB"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "NB", + }; key.FromAddress(address); supplier_.Supply(key, *supplied_callback_); @@ -169,9 +172,10 @@ TEST_F(PreloadSupplierTest, SupplyRegionCode) { TEST_F(PreloadSupplierTest, SupplyGloballyRegionCode) { supplier_.LoadRules("CA", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CA"; - address.administrative_area = "NB"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "NB", + }; key.FromAddress(address); supplier_.SupplyGlobally(key, *supplied_callback_); @@ -187,9 +191,10 @@ TEST_F(PreloadSupplierTest, SupplyGloballyRegionCode) { TEST_F(PreloadSupplierTest, SupplyRegionName) { supplier_.LoadRules("CA", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CA"; - address.administrative_area = "New Brunswick"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "New Brunswick", + }; key.FromAddress(address); supplier_.Supply(key, *supplied_callback_); @@ -205,9 +210,10 @@ TEST_F(PreloadSupplierTest, SupplyRegionName) { TEST_F(PreloadSupplierTest, SupplyGloballyRegionName) { supplier_.LoadRules("CA", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CA"; - address.administrative_area = "New Brunswick"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "New Brunswick", + }; key.FromAddress(address); supplier_.SupplyGlobally(key, *supplied_callback_); @@ -223,9 +229,10 @@ TEST_F(PreloadSupplierTest, SupplyGloballyRegionName) { TEST_F(PreloadSupplierTest, SupplyRegionNameLanguage) { supplier_.LoadRules("CA", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CA"; - address.administrative_area = "Nouveau-Brunswick"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "Nouveau-Brunswick", + }; key.FromAddress(address); supplier_.Supply(key, *supplied_callback_); @@ -242,10 +249,11 @@ TEST_F(PreloadSupplierTest, SupplyRegionNameLanguage) { TEST_F(PreloadSupplierTest, SupplyRegionNameLanguageSet) { supplier_.LoadRules("CA", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CA"; - address.administrative_area = "Nouveau-Brunswick"; - address.language_code = "fr"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "Nouveau-Brunswick", + .language_code = "fr", + }; key.FromAddress(address); supplier_.Supply(key, *supplied_callback_); @@ -262,9 +270,10 @@ TEST_F(PreloadSupplierTest, SupplyRegionNameLanguageSet) { TEST_F(PreloadSupplierTest, SupplyGloballyRegionNameLanguage) { supplier_.LoadRules("CA", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CA"; - address.administrative_area = "Nouveau-Brunswick"; + const AddressData address{ + .region_code = "CA", + .administrative_area = "Nouveau-Brunswick", + }; key.FromAddress(address); supplier_.SupplyGlobally(key, *supplied_callback_); @@ -281,10 +290,11 @@ TEST_F(PreloadSupplierTest, SupplyGloballyRegionNameLanguage) { TEST_F(PreloadSupplierTest, SupplyRegionNameHK) { supplier_.LoadRules("HK", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "HK"; - address.administrative_area = "新界"; - address.locality = "大嶼山石壁"; + const AddressData address{ + .region_code = "HK", + .administrative_area = "新界", + .locality = "大嶼山石壁", + }; key.FromAddress(address); supplier_.Supply(key, *supplied_callback_); @@ -301,10 +311,11 @@ TEST_F(PreloadSupplierTest, SupplyRegionNameHK) { TEST_F(PreloadSupplierTest, SupplyGloballyRegionNameHKEnglish) { supplier_.LoadRules("HK", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "HK"; - address.administrative_area = "New Territories"; - address.locality = "Tsing Yi"; + const AddressData address{ + .region_code = "HK", + .administrative_area = "New Territories", + .locality = "Tsing Yi", + }; key.FromAddress(address); supplier_.SupplyGlobally(key, *supplied_callback_); @@ -323,11 +334,12 @@ TEST_F(PreloadSupplierTest, SupplyGloballyRegionNameHKEnglish) { TEST_F(PreloadSupplierTest, SupplyRegionNameAllLevels) { supplier_.LoadRules("CN", *loaded_callback_); LookupKey key; - AddressData address; - address.region_code = "CN"; - address.administrative_area = "云南省"; - address.locality = "临沧市"; - address.dependent_locality = "临翔区"; + const AddressData address{ + .region_code = "CN", + .administrative_area = "云南省", + .locality = "临沧市", + .dependent_locality = "临翔区", + }; key.FromAddress(address); supplier_.Supply(key, *supplied_callback_); diff --git a/cpp/test/rule_test.cc b/cpp/test/rule_test.cc index b53712d0..ae238b18 100644 --- a/cpp/test/rule_test.cc +++ b/cpp/test/rule_test.cc @@ -147,9 +147,10 @@ TEST(RuleTest, ParseOverwritesRule) { } TEST(RuleTest, ParsesFormatCorrectly) { - std::vector expected; - expected.emplace_back(ADMIN_AREA); - expected.emplace_back(LOCALITY); + const std::vector expected{ + FormatElement{ADMIN_AREA}, + FormatElement{LOCALITY}, + }; Rule rule; ASSERT_TRUE(rule.ParseSerializedRule("{\"fmt\":\"%S%C\"}")); EXPECT_EQ(expected, rule.GetFormat()); @@ -168,38 +169,42 @@ TEST(RuleTest, ParsesLatinNameCorrectly) { } TEST(RuleTest, ParsesLatinFormatCorrectly) { - std::vector expected; - expected.emplace_back(LOCALITY); - expected.emplace_back(ADMIN_AREA); + const std::vector expected{ + FormatElement{LOCALITY}, + FormatElement{ADMIN_AREA}, + }; Rule rule; ASSERT_TRUE(rule.ParseSerializedRule("{\"lfmt\":\"%C%S\"}")); EXPECT_EQ(expected, rule.GetLatinFormat()); } TEST(RuleTest, ParsesRequiredCorrectly) { - std::vector expected; - expected.push_back(STREET_ADDRESS); - expected.push_back(LOCALITY); + const std::vector expected{ + STREET_ADDRESS, + LOCALITY, + }; Rule rule; ASSERT_TRUE(rule.ParseSerializedRule("{\"require\":\"AC\"}")); EXPECT_EQ(expected, rule.GetRequired()); } TEST(RuleTest, ParsesSubKeysCorrectly) { - std::vector expected; - expected.emplace_back("aa"); - expected.emplace_back("bb"); - expected.emplace_back("cc"); + const std::vector expected{ + "aa", + "bb", + "cc", + }; Rule rule; ASSERT_TRUE(rule.ParseSerializedRule("{\"sub_keys\":\"aa~bb~cc\"}")); EXPECT_EQ(expected, rule.GetSubKeys()); } TEST(RuleTest, ParsesLanguagesCorrectly) { - std::vector expected; - expected.emplace_back("de"); - expected.emplace_back("fr"); - expected.emplace_back("it"); + const std::vector expected{ + "de", + "fr", + "it", + }; Rule rule; ASSERT_TRUE(rule.ParseSerializedRule("{\"languages\":\"de~fr~it\"}")); EXPECT_EQ(expected, rule.GetLanguages()); diff --git a/cpp/test/supplier_test.cc b/cpp/test/supplier_test.cc index c373aa07..7897f10c 100644 --- a/cpp/test/supplier_test.cc +++ b/cpp/test/supplier_test.cc @@ -142,7 +142,7 @@ INSTANTIATE_TEST_SUITE_P(PreloadSupplier, SupplierTest, testing::Values(&PreloadSupplierWrapper::Build)); TEST_P(SupplierTest, Invalid) { - address_.region_code = "QZ"; + address_ = {.region_code = "QZ"}; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -153,7 +153,7 @@ TEST_P(SupplierTest, Invalid) { } TEST_P(SupplierTest, Valid) { - address_.region_code = "SE"; + address_ = {.region_code = "SE"}; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -168,8 +168,10 @@ TEST_P(SupplierTest, Valid) { } TEST_P(SupplierTest, KeyDepthEqualsMaxDepth) { - address_.region_code = "HK"; - address_.administrative_area = "九龍"; + address_ = { + .region_code = "HK", + .administrative_area = "九龍", + }; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -180,9 +182,11 @@ TEST_P(SupplierTest, KeyDepthEqualsMaxDepth) { } TEST_P(SupplierTest, KeyDepthLargerThanMaxDepth) { - address_.region_code = "HK"; - address_.administrative_area = "九龍"; - address_.locality = "bbb"; // Ignored! + address_ = { + .region_code = "HK", + .administrative_area = "九龍", + .locality = "bbb", // Ignored! + }; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -193,7 +197,7 @@ TEST_P(SupplierTest, KeyDepthLargerThanMaxDepth) { } TEST_P(SupplierTest, KeyDepthSmallerThanMaxDepth) { - address_.region_code = "HK"; + address_ = {.region_code = "HK"}; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -204,7 +208,7 @@ TEST_P(SupplierTest, KeyDepthSmallerThanMaxDepth) { } TEST_P(SupplierTest, KeyDepth0) { - address_.region_code = "CN"; + address_ = {.region_code = "CN"}; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -215,8 +219,10 @@ TEST_P(SupplierTest, KeyDepth0) { } TEST_P(SupplierTest, KeyDepth1) { - address_.region_code = "CN"; - address_.administrative_area = "新疆维吾尔自治区"; + address_ = { + .region_code = "CN", + .administrative_area = "新疆维吾尔自治区", + }; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -227,9 +233,11 @@ TEST_P(SupplierTest, KeyDepth1) { } TEST_P(SupplierTest, KeyDepth2) { - address_.region_code = "CN"; - address_.administrative_area = "新疆维吾尔自治区"; - address_.locality = "喀什地区"; + address_ = { + .region_code = "CN", + .administrative_area = "新疆维吾尔自治区", + .locality = "喀什地区", + }; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -240,10 +248,12 @@ TEST_P(SupplierTest, KeyDepth2) { } TEST_P(SupplierTest, KeyDepth3) { - address_.region_code = "CN"; - address_.administrative_area = "新疆维吾尔自治区"; - address_.locality = "喀什地区"; - address_.dependent_locality = "喀什市"; + address_ = { + .region_code = "CN", + .administrative_area = "新疆维吾尔自治区", + .locality = "喀什地区", + .dependent_locality = "喀什市", + }; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); @@ -254,8 +264,10 @@ TEST_P(SupplierTest, KeyDepth3) { } TEST_P(SupplierTest, RuleCache) { - address_.region_code = "US"; - address_.administrative_area = "CA"; + address_ = { + .region_code = "US", + .administrative_area = "CA", + }; ASSERT_NO_FATAL_FAILURE(Supply()); ASSERT_TRUE(called_); diff --git a/cpp/test/util/string_util_test.cc b/cpp/test/util/string_util_test.cc index 216bef3e..8fa95ee1 100644 --- a/cpp/test/util/string_util_test.cc +++ b/cpp/test/util/string_util_test.cc @@ -24,37 +24,40 @@ namespace { using i18n::addressinput::DoReplaceStringPlaceholders; TEST(StringUtilTest, Ok) { - std::vector subst; - subst.emplace_back("A"); - subst.emplace_back("B"); - subst.emplace_back("C"); + const std::vector subst{ + "A", + "B", + "C", + }; EXPECT_EQ("aA,bB,cC", DoReplaceStringPlaceholders("a$1,b$2,c$3", subst)); } TEST(StringUtilTest, FewParameters) { - std::vector subst; - subst.emplace_back("A"); - subst.emplace_back("B"); - subst.emplace_back("C"); + const std::vector subst{ + "A", + "B", + "C", + }; EXPECT_EQ("aA,bB,cC,d,aA", DoReplaceStringPlaceholders("a$1,b$2,c$3,d$4,a$1", subst)); } TEST(StringUtilTest, MoreThan9Parameters) { - std::vector subst; - subst.emplace_back("A"); - subst.emplace_back("B"); - subst.emplace_back("C"); - subst.emplace_back("D"); - subst.emplace_back("E"); - subst.emplace_back("F"); - subst.emplace_back("G"); - subst.emplace_back("H"); - subst.emplace_back("I"); - subst.emplace_back("J"); - subst.emplace_back("K"); + const std::vector subst{ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + }; EXPECT_EQ("aA,bB,cC,dD,eE,fF,gG,hH,iI,jJ,kK,aA", DoReplaceStringPlaceholders("a$1,b$2,c$3,d$4,e$5,f$6,g$7,h$8,i$9," @@ -63,10 +66,11 @@ TEST(StringUtilTest, MoreThan9Parameters) { } TEST(StringUtilTest, ConsecutiveDollarSigns) { - std::vector subst; - subst.emplace_back("A"); - subst.emplace_back("B"); - subst.emplace_back("C"); + const std::vector subst{ + "A", + "B", + "C", + }; EXPECT_EQ("$1 $$2 $$$3", DoReplaceStringPlaceholders("$$1 $$$2 $$$$3", subst)); diff --git a/cpp/test/validation_task_test.cc b/cpp/test/validation_task_test.cc index 0cbe236e..4739ba64 100644 --- a/cpp/test/validation_task_test.cc +++ b/cpp/test/validation_task_test.cc @@ -45,7 +45,12 @@ class ValidationTaskTest : public testing::Test { address_(), allow_postal_(false), require_name_(false), - filter_(), + filter_{ + {COUNTRY, UNEXPECTED_FIELD}, + {COUNTRY, MISSING_REQUIRED_FIELD}, + {RECIPIENT, UNEXPECTED_FIELD}, + {RECIPIENT, MISSING_REQUIRED_FIELD}, + }, problems_(), expected_(), called_(false), @@ -78,11 +83,6 @@ class ValidationTaskTest : public testing::Test { filter_.emplace(field, problem); } } - - filter_.emplace(COUNTRY, UNEXPECTED_FIELD); - filter_.emplace(COUNTRY, MISSING_REQUIRED_FIELD); - filter_.emplace(RECIPIENT, UNEXPECTED_FIELD); - filter_.emplace(RECIPIENT, MISSING_REQUIRED_FIELD); } void Validate() { @@ -150,7 +150,7 @@ TEST_F(ValidationTaskTest, FailureCountryRuleEmpty) { } TEST_F(ValidationTaskTest, SuccessCountryRuleNullNameEmpty) { - expected_.emplace(COUNTRY, MISSING_REQUIRED_FIELD); + expected_ = {{COUNTRY, MISSING_REQUIRED_FIELD}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -158,9 +158,9 @@ TEST_F(ValidationTaskTest, SuccessCountryRuleNullNameEmpty) { } TEST_F(ValidationTaskTest, SuccessCountryRuleNullNameNotEmpty) { - address_.region_code = "rrr"; + address_ = {.region_code = "rrr"}; - expected_.emplace(COUNTRY, UNKNOWN_VALUE); + expected_ = {{COUNTRY, UNKNOWN_VALUE}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -170,7 +170,7 @@ TEST_F(ValidationTaskTest, SuccessCountryRuleNullNameNotEmpty) { TEST_F(ValidationTaskTest, SuccessCountryRuleEmptyNameEmpty) { json_[0] = "{}"; - expected_.emplace(COUNTRY, MISSING_REQUIRED_FIELD); + expected_ = {{COUNTRY, MISSING_REQUIRED_FIELD}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -180,7 +180,7 @@ TEST_F(ValidationTaskTest, SuccessCountryRuleEmptyNameEmpty) { TEST_F(ValidationTaskTest, SuccessCountryRuleEmptyNameNotEmpty) { json_[0] = "{}"; - address_.region_code = "rrr"; + address_ = {.region_code = "rrr"}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -190,16 +190,20 @@ TEST_F(ValidationTaskTest, SuccessCountryRuleEmptyNameNotEmpty) { TEST_F(ValidationTaskTest, MissingRequiredFieldsUS) { json_[0] = "{}"; - address_.region_code = "US"; - - filter_.emplace(ADMIN_AREA, MISSING_REQUIRED_FIELD); - filter_.emplace(LOCALITY, MISSING_REQUIRED_FIELD); - filter_.emplace(POSTAL_CODE, MISSING_REQUIRED_FIELD); - filter_.emplace(STREET_ADDRESS, MISSING_REQUIRED_FIELD); - expected_.emplace(ADMIN_AREA, MISSING_REQUIRED_FIELD); - expected_.emplace(LOCALITY, MISSING_REQUIRED_FIELD); - expected_.emplace(POSTAL_CODE, MISSING_REQUIRED_FIELD); - expected_.emplace(STREET_ADDRESS, MISSING_REQUIRED_FIELD); + address_ = {.region_code = "US"}; + + filter_ = { + {ADMIN_AREA, MISSING_REQUIRED_FIELD}, + {LOCALITY, MISSING_REQUIRED_FIELD}, + {POSTAL_CODE, MISSING_REQUIRED_FIELD}, + {STREET_ADDRESS, MISSING_REQUIRED_FIELD}, + }; + expected_ = { + {ADMIN_AREA, MISSING_REQUIRED_FIELD}, + {LOCALITY, MISSING_REQUIRED_FIELD}, + {POSTAL_CODE, MISSING_REQUIRED_FIELD}, + {STREET_ADDRESS, MISSING_REQUIRED_FIELD}, + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -209,19 +213,23 @@ TEST_F(ValidationTaskTest, MissingRequiredFieldsUS) { TEST_F(ValidationTaskTest, MissingNoRequiredFieldsUS) { json_[0] = "{}"; - address_.region_code = "US"; - address_.administrative_area = "sss"; - address_.locality = "ccc"; - address_.postal_code = "zzz"; - address_.address_line.emplace_back("aaa"); - address_.organization = "ooo"; - address_.recipient = "nnn"; - - filter_.emplace(ADMIN_AREA, MISSING_REQUIRED_FIELD); - filter_.emplace(LOCALITY, MISSING_REQUIRED_FIELD); - filter_.emplace(POSTAL_CODE, MISSING_REQUIRED_FIELD); - filter_.emplace(STREET_ADDRESS, MISSING_REQUIRED_FIELD); - filter_.emplace(ORGANIZATION, MISSING_REQUIRED_FIELD); + address_ = { + .region_code = "US", + .address_line{"aaa"}, + .administrative_area = "sss", + .locality = "ccc", + .postal_code = "zzz", + .organization = "ooo", + .recipient = "nnn", + }; + + filter_ = { + {ADMIN_AREA, MISSING_REQUIRED_FIELD}, + {LOCALITY, MISSING_REQUIRED_FIELD}, + {POSTAL_CODE, MISSING_REQUIRED_FIELD}, + {STREET_ADDRESS, MISSING_REQUIRED_FIELD}, + {ORGANIZATION, MISSING_REQUIRED_FIELD}, + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -231,11 +239,13 @@ TEST_F(ValidationTaskTest, MissingNoRequiredFieldsUS) { TEST_F(ValidationTaskTest, UnexpectedFieldUS) { json_[0] = "{}"; - address_.region_code = "US"; - address_.dependent_locality = "ddd"; + address_ = { + .region_code = "US", + .dependent_locality = "ddd", + }; - filter_.emplace(DEPENDENT_LOCALITY, UNEXPECTED_FIELD); - expected_.emplace(DEPENDENT_LOCALITY, UNEXPECTED_FIELD); + filter_ = {{DEPENDENT_LOCALITY, UNEXPECTED_FIELD}}; + expected_ = {{DEPENDENT_LOCALITY, UNEXPECTED_FIELD}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -245,11 +255,11 @@ TEST_F(ValidationTaskTest, UnexpectedFieldUS) { TEST_F(ValidationTaskTest, MissingRequiredFieldRequireName) { json_[0] = "{}"; - address_.region_code = "rrr"; + address_ = {.region_code = "rrr"}; require_name_ = true; - expected_.emplace(RECIPIENT, MISSING_REQUIRED_FIELD); + expected_ = {{RECIPIENT, MISSING_REQUIRED_FIELD}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -259,10 +269,12 @@ TEST_F(ValidationTaskTest, MissingRequiredFieldRequireName) { TEST_F(ValidationTaskTest, UnknownValueRuleNull) { json_[0] = R"({"fmt":"%R%S","require":"RS","sub_keys":"aa~bb"})"; - address_.region_code = "rrr"; - address_.administrative_area = "sss"; + address_ = { + .region_code = "rrr", + .administrative_area = "sss", + }; - expected_.emplace(ADMIN_AREA, UNKNOWN_VALUE); + expected_ = {{ADMIN_AREA, UNKNOWN_VALUE}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -273,8 +285,10 @@ TEST_F(ValidationTaskTest, NoUnknownValueRuleNotNull) { json_[0] = R"({"fmt":"%R%S","require":"RS","sub_keys":"aa~bb"})"; json_[1] = "{}"; - address_.region_code = "rrr"; - address_.administrative_area = "sss"; + address_ = { + .region_code = "rrr", + .administrative_area = "sss", + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -284,10 +298,12 @@ TEST_F(ValidationTaskTest, NoUnknownValueRuleNotNull) { TEST_F(ValidationTaskTest, PostalCodeUnrecognizedFormatTooShort) { json_[0] = R"({"fmt":"%Z","zip":"\\d{3}"})"; - address_.region_code = "rrr"; - address_.postal_code = "12"; + address_ = { + .region_code = "rrr", + .postal_code = "12", + }; - expected_.emplace(POSTAL_CODE, INVALID_FORMAT); + expected_ = {{POSTAL_CODE, INVALID_FORMAT}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -297,10 +313,12 @@ TEST_F(ValidationTaskTest, PostalCodeUnrecognizedFormatTooShort) { TEST_F(ValidationTaskTest, PostalCodeUnrecognizedFormatTooLong) { json_[0] = R"({"fmt":"%Z","zip":"\\d{3}"})"; - address_.region_code = "rrr"; - address_.postal_code = "1234"; + address_ = { + .region_code = "rrr", + .postal_code = "1234", + }; - expected_.emplace(POSTAL_CODE, INVALID_FORMAT); + expected_ = {{POSTAL_CODE, INVALID_FORMAT}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -310,8 +328,10 @@ TEST_F(ValidationTaskTest, PostalCodeUnrecognizedFormatTooLong) { TEST_F(ValidationTaskTest, PostalCodeRecognizedFormat) { json_[0] = R"({"fmt":"%Z","zip":"\\d{3}"})"; - address_.region_code = "rrr"; - address_.postal_code = "123"; + address_ = { + .region_code = "rrr", + .postal_code = "123", + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -322,10 +342,12 @@ TEST_F(ValidationTaskTest, PostalCodeMismatchingValue1) { json_[0] = R"({"fmt":"%Z","zip":"\\d{3}"})"; json_[1] = R"({"zip":"1"})"; - address_.region_code = "rrr"; - address_.postal_code = "000"; + address_ = { + .region_code = "rrr", + .postal_code = "000", + }; - expected_.emplace(POSTAL_CODE, MISMATCHING_VALUE); + expected_ = {{POSTAL_CODE, MISMATCHING_VALUE}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -337,10 +359,12 @@ TEST_F(ValidationTaskTest, PostalCodeMismatchingValue2) { json_[1] = R"({"zip":"1"})"; json_[2] = R"({"zip":"12"})"; - address_.region_code = "rrr"; - address_.postal_code = "100"; + address_ = { + .region_code = "rrr", + .postal_code = "100", + }; - expected_.emplace(POSTAL_CODE, MISMATCHING_VALUE); + expected_ = {{POSTAL_CODE, MISMATCHING_VALUE}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -353,10 +377,12 @@ TEST_F(ValidationTaskTest, PostalCodeMismatchingValue3) { json_[2] = R"({"zip":"12"})"; json_[3] = R"({"zip":"123"})"; - address_.region_code = "rrr"; - address_.postal_code = "120"; + address_ = { + .region_code = "rrr", + .postal_code = "120", + }; - expected_.emplace(POSTAL_CODE, MISMATCHING_VALUE); + expected_ = {{POSTAL_CODE, MISMATCHING_VALUE}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -369,8 +395,10 @@ TEST_F(ValidationTaskTest, PostalCodeMatchingValue) { json_[2] = R"({"zip":"12"})"; json_[3] = R"({"zip":"123"})"; - address_.region_code = "rrr"; - address_.postal_code = "123"; + address_ = { + .region_code = "rrr", + .postal_code = "123", + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -381,10 +409,12 @@ TEST_F(ValidationTaskTest, PostalCodePrefixMismatchingValue) { json_[0] = R"({"fmt":"%Z","zip":"\\d{5}"})"; json_[1] = R"({"zip":"9[0-5]|96[01]"})"; - address_.region_code = "rrr"; - address_.postal_code = "10960"; + address_ = { + .region_code = "rrr", + .postal_code = "10960", + }; - expected_.emplace(POSTAL_CODE, MISMATCHING_VALUE); + expected_ = {{POSTAL_CODE, MISMATCHING_VALUE}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -395,11 +425,12 @@ TEST_F(ValidationTaskTest, PostalCodeFilterIgnoresMismatching) { json_[0] = R"({"zip":"\\d{3}"})"; json_[1] = R"({"zip":"1"})"; - address_.region_code = "rrr"; - address_.postal_code = "000"; + address_ = { + .region_code = "rrr", + .postal_code = "000", + }; - filter_.erase(POSTAL_CODE); - filter_.emplace(POSTAL_CODE, INVALID_FORMAT); + filter_ = {{POSTAL_CODE, INVALID_FORMAT}}; // (POSTAL_CODE, MISMATCHING_VALUE) should not be reported. @@ -411,12 +442,16 @@ TEST_F(ValidationTaskTest, PostalCodeFilterIgnoresMismatching) { TEST_F(ValidationTaskTest, UsesPoBoxLanguageUnd) { json_[0] = R"({"fmt":"%A"})"; - address_.region_code = "rrr"; - address_.address_line.emplace_back("aaa"); - address_.address_line.emplace_back("P.O. Box"); - address_.address_line.emplace_back("aaa"); + address_ = { + .region_code = "rrr", + .address_line{ + "aaa", + "P.O. Box", + "aaa", + }, + }; - expected_.emplace(STREET_ADDRESS, USES_P_O_BOX); + expected_ = {{STREET_ADDRESS, USES_P_O_BOX}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -426,12 +461,16 @@ TEST_F(ValidationTaskTest, UsesPoBoxLanguageUnd) { TEST_F(ValidationTaskTest, UsesPoBoxLanguageDa) { json_[0] = R"({"fmt":"%A","languages":"da"})"; - address_.region_code = "rrr"; - address_.address_line.emplace_back("aaa"); - address_.address_line.emplace_back("Postboks"); - address_.address_line.emplace_back("aaa"); + address_ = { + .region_code = "rrr", + .address_line{ + "aaa", + "Postboks", + "aaa", + }, + }; - expected_.emplace(STREET_ADDRESS, USES_P_O_BOX); + expected_ = {{STREET_ADDRESS, USES_P_O_BOX}}; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -441,10 +480,14 @@ TEST_F(ValidationTaskTest, UsesPoBoxLanguageDa) { TEST_F(ValidationTaskTest, UsesPoBoxLanguageDaNotMatchDe) { json_[0] = R"({"fmt":"%A","languages":"da"})"; - address_.region_code = "rrr"; - address_.address_line.emplace_back("aaa"); - address_.address_line.emplace_back("Postfach"); - address_.address_line.emplace_back("aaa"); + address_ = { + .region_code = "rrr", + .address_line{ + "aaa", + "Postfach", + "aaa", + }, + }; ASSERT_NO_FATAL_FAILURE(Validate()); ASSERT_TRUE(called_); @@ -454,10 +497,14 @@ TEST_F(ValidationTaskTest, UsesPoBoxLanguageDaNotMatchDe) { TEST_F(ValidationTaskTest, UsesPoBoxAllowPostal) { json_[0] = R"({"fmt":"%A"})"; - address_.region_code = "rrr"; - address_.address_line.emplace_back("aaa"); - address_.address_line.emplace_back("P.O. Box"); - address_.address_line.emplace_back("aaa"); + address_ = { + .region_code = "rrr", + .address_line{ + "aaa", + "P.O. Box", + "aaa", + }, + }; allow_postal_ = true;