This source file includes following definitions.
- HasCurlyBraces
- TEST
- TEST
#include "region_data_constants.h"
#include <string>
#include <vector>
#include <gtest/gtest.h>
namespace {
using i18n::addressinput::RegionDataConstants;
testing::AssertionResult HasCurlyBraces(const std::string& data) {
if (data.empty()) {
return testing::AssertionFailure() << "data is empty";
}
if (data[0] != '{') {
return testing::AssertionFailure() << data << " does not start with '{'";
}
if (data[data.length() - 1] != '}') {
return testing::AssertionFailure() << data << " does not end with '}'";
}
return testing::AssertionSuccess();
}
TEST(DefaultRegionDataTest, DefaultRegionHasCurlyBraces) {
EXPECT_TRUE(HasCurlyBraces(RegionDataConstants::GetDefaultRegionData()));
}
TEST(RegionDataTest, RegionDataHasCertainProperties) {
const std::vector<std::string>& region_data_codes =
RegionDataConstants::GetRegionCodes();
for (size_t i = 0; i < region_data_codes.size(); ++i) {
SCOPED_TRACE("For region: " + region_data_codes[i]);
EXPECT_EQ(2U, region_data_codes[i].length());
const std::string& region_data = RegionDataConstants::GetRegionData(
region_data_codes[i]);
EXPECT_TRUE(HasCurlyBraces(region_data));
EXPECT_NE(std::string::npos, region_data.find("\"name\":"));
}
}
}