Commit 3ffa237f authored by Abseil Team's avatar Abseil Team Committed by Copybara-Service
Browse files

Use ResultOf()'s result_description when explaining match result.

PiperOrigin-RevId: 439389646
Change-Id: Ie34adcdd2b24378e85962efac53b7bb89ed93803
parent 25dcdc7e
...@@ -2258,7 +2258,11 @@ class ResultOfMatcher { ...@@ -2258,7 +2258,11 @@ class ResultOfMatcher {
} }
bool MatchAndExplain(T obj, MatchResultListener* listener) const override { bool MatchAndExplain(T obj, MatchResultListener* listener) const override {
*listener << "which is mapped by the given callable to "; if (result_description_.empty()) {
*listener << "which is mapped by the given callable to ";
} else {
*listener << "whose " << result_description_ << " is ";
}
// Cannot pass the return value directly to MatchPrintAndExplain, which // Cannot pass the return value directly to MatchPrintAndExplain, which
// takes a non-const reference as argument. // takes a non-const reference as argument.
// Also, specifying template argument explicitly is needed because T could // Also, specifying template argument explicitly is needed because T could
......
...@@ -949,6 +949,17 @@ TEST(ResultOfTest, CanExplainMatchResult) { ...@@ -949,6 +949,17 @@ TEST(ResultOfTest, CanExplainMatchResult) {
Explain(matcher, 36)); Explain(matcher, 36));
} }
TEST(ResultOfTest, CanExplainMatchResultWithResultDescription) {
Matcher<int> matcher = ResultOf("magic int conversion", &IntFunction, Ge(85));
EXPECT_EQ("whose magic int conversion is 90" + OfType("int"),
Explain(matcher, 36));
matcher = ResultOf("magic int conversion", &IntFunction, GreaterThan(85));
EXPECT_EQ("whose magic int conversion is 90" + OfType("int") +
", which is 5 more than 85",
Explain(matcher, 36));
}
// Tests that ResultOf(f, ...) compiles and works as expected when f(x) // Tests that ResultOf(f, ...) compiles and works as expected when f(x)
// returns a non-reference. // returns a non-reference.
TEST(ResultOfTest, WorksForNonReferenceResults) { TEST(ResultOfTest, WorksForNonReferenceResults) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment