|
12 | 12 | // See the License for the specific language governing permissions and |
13 | 13 | // limitations under the License. |
14 | 14 |
|
| 15 | +#include "common/values/duration_value.h" |
| 16 | + |
15 | 17 | #include <sstream> |
16 | 18 | #include <utility> |
17 | 19 |
|
| 20 | +#include "absl/status/status.h" |
18 | 21 | #include "absl/status/status_matchers.h" |
19 | 22 | #include "absl/time/time.h" |
20 | 23 | #include "common/native_type.h" |
@@ -66,6 +69,16 @@ TEST_F(DurationValueTest, ConvertToJson) { |
66 | 69 | EXPECT_THAT(*message, EqualsValueTextProto(R"pb(string_value: "0s")pb")); |
67 | 70 | } |
68 | 71 |
|
| 72 | +TEST_F(DurationValueTest, ConvertToJsonOutOfBounds) { |
| 73 | + auto* message = NewArenaValueMessage(); |
| 74 | + EXPECT_THAT(UnsafeDurationValue(absl::InfiniteDuration()) |
| 75 | + .ConvertToJson(descriptor_pool(), message_factory(), message), |
| 76 | + absl_testing::StatusIs(absl::StatusCode::kInvalidArgument)); |
| 77 | + EXPECT_THAT(UnsafeDurationValue(-absl::InfiniteDuration()) |
| 78 | + .ConvertToJson(descriptor_pool(), message_factory(), message), |
| 79 | + absl_testing::StatusIs(absl::StatusCode::kInvalidArgument)); |
| 80 | +} |
| 81 | + |
69 | 82 | TEST_F(DurationValueTest, NativeTypeId) { |
70 | 83 | EXPECT_EQ(NativeTypeId::Of(DurationValue(absl::Seconds(1))), |
71 | 84 | NativeTypeId::For<DurationValue>()); |
|
0 commit comments