Skip to content

Commit d050929

Browse files
committed
fix build: account for not having parsing for std::chrono::year_month_day
commit_hash:40ea7df786d23f7eabaa5d1589d56080a09d896f
1 parent 5b8bee2 commit d050929

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

grpc/tests/datetime_utils_test.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,18 +152,25 @@ TEST(DatetimeUtilsDateIsValid, DayDoesNotMatchMonth) { EXPECT_FALSE(ugrpc::IsVal
152152

153153
#if __cpp_lib_chrono >= 201907L
154154

155+
template <typename Value>
156+
concept YearMonthDaySerializationSupported = requires(const Value& value) {
157+
Parse(value, formats::parse::To<std::chrono::year_month_day>{});
158+
};
159+
155160
TEST(DatetimeUtils, ToProtoDateFromYearMonthDay) {
156161
EXPECT_TRUE(kGrpcCompare(kDate, ugrpc::ToProtoDate(kYearMonthDay)));
157162
}
158163

159164
TEST(DatetimeUtils, ToProtoDateFromInvalidYearMonthDay) {
160-
constexpr std::chrono::year_month_day
161-
kInvalidYearMonthDay(std::chrono::year(11000), std::chrono::month(4), std::chrono::day(10));
162-
UEXPECT_THROW_MSG(
163-
formats::json::ValueBuilder(kInvalidYearMonthDay).ExtractValue(),
164-
ugrpc::DateConversionError,
165-
"system_date is invalid"
166-
);
165+
if constexpr (YearMonthDaySerializationSupported<formats::json::Value>) {
166+
constexpr std::chrono::year_month_day
167+
kInvalidYearMonthDay(std::chrono::year(11000), std::chrono::month(4), std::chrono::day(10));
168+
UEXPECT_THROW_MSG(
169+
formats::json::ValueBuilder(kInvalidYearMonthDay).ExtractValue(),
170+
ugrpc::DateConversionError,
171+
"system_date is invalid"
172+
);
173+
}
167174
}
168175

169176
TEST(DatetimeUtils, ToYearMonthDay) { EXPECT_EQ(kYearMonthDay, ugrpc::ToYearMonthDay(kDate)); }

0 commit comments

Comments
 (0)