3#include <userver/ugrpc/status_utils.hpp>
9types::ConstrainedMessage CreateValidMessage(int32_t required_value) {
10 types::ConstrainedMessage msg;
11 msg.set_required_rule(required_value);
12 msg.set_const_rule(
true);
13 msg.mutable_lt_rule()->set_seconds(3);
14 msg.mutable_lt_rule()->set_nanos(100000);
17 msg.set_not_in_rule(
"test");
18 msg.set_uuid_rule(
"3422b448-2460-4fd2-9183-8000de6f8343");
19 msg.set_regex_rule(
"Hello, world!");
20 msg.set_defined_only_rule(types::TEST_ENUM_VALUE_1);
21 msg.add_unique_gt_rule(11);
22 msg.add_unique_gt_rule(12);
23 msg.add_unique_gt_rule(13);
24 (*msg.mutable_keys_values_rule())[
"x"] = 0;
25 (*msg.mutable_keys_values_rule())[
"xx"] = -1;
26 (*msg.mutable_keys_values_rule())[
"xxx"] = -2;
30types::ConstrainedMessage CreateInvalidMessage() {
31 types::ConstrainedMessage msg;
32 msg.set_required_rule(0);
33 msg.set_const_rule(
false);
34 msg.mutable_lt_rule()->set_seconds(10);
35 msg.mutable_lt_rule()->set_nanos(100000);
38 msg.set_not_in_rule(
"aaa");
39 msg.set_uuid_rule(
"3422b448-2460-4fd2-9183");
40 msg.set_regex_rule(
"World, hello!");
41 msg.set_defined_only_rule(
static_cast<types::TestEnum>(10));
42 msg.add_unique_gt_rule(3);
43 msg.add_unique_gt_rule(5);
44 msg.add_unique_gt_rule(3);
45 (*msg.mutable_keys_values_rule())[
"x"] = 1;
46 (*msg.mutable_keys_values_rule())[
"xxxxx"] = -1;
47 (*msg.mutable_keys_values_rule())[
"xxxxxx"] = 10;
51std::optional<buf::validate::Violations> GetViolations(
const ugrpc::client::InvalidArgumentError& err) {
52 std::optional<buf::validate::Violations> result;
53 auto status = ugrpc::ToGoogleRpcStatus(err.GetStatus());
56 for (
const auto& detail : status->details()) {
57 if (detail.Is<buf::validate::Violations>()) {
59 detail.UnpackTo(&(*result));