MCPcopy Create free account
hub / github.com/Snapchat/Valdi / TEST

Function TEST

valdi_protobuf/test/Message_tests.cpp:35–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33 */
34
35TEST(Message, canDecodeSingle) {
36 test::Message message;
37
38 message.set_int32(42);
39 message.set_int64(1337133713371337);
40 message.set_uint32(4294967294);
41 message.set_uint64(104294967296u);
42 message.set_sint32(-43);
43 message.set_sint64(-1337133713371337);
44 message.set_fixed32(42);
45 message.set_fixed64(10429496729600u);
46 message.set_sfixed32(-42);
47 message.set_sfixed64(-10429496729600);
48 message.set_float_(0.98765);
49 message.set_double_(0.987654321);
50 message.set_bool_(true);
51 message.set_string("Hello World and Welcome!");
52 message.set_bytes("<some bytes here>");
53 message.set_enum_(test::Enum::VALUE_1);
54
55 auto bytes = message.ByteSizeLong();
56 auto buffer = makeShared<ByteBuffer>();
57 buffer->resize(bytes);
58
59 ASSERT_TRUE(message.SerializeToArray(buffer->data(), buffer->size()));
60
61 SimpleExceptionTracker exceptionTracker;
62 auto parsedMessage = Protobuf::Message::parse(buffer->toBytesView(), message.GetDescriptor(), exceptionTracker);
63
64 ASSERT_EQ(std::vector<Protobuf::FieldNumber>({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}),
65 parsedMessage->sortedFieldNumbers());
66
67 ASSERT_EQ(42, parsedMessage->getOrCreateField(1).getInt32());
68 ASSERT_EQ(1337133713371337, parsedMessage->getOrCreateField(2).getInt64());
69 ASSERT_EQ(4294967294u, parsedMessage->getOrCreateField(3).getUInt32());
70 ASSERT_EQ(104294967296u, parsedMessage->getOrCreateField(4).getUInt64());
71 ASSERT_EQ(-43, parsedMessage->getOrCreateField(5).getSInt32());
72 ASSERT_EQ(-1337133713371337, parsedMessage->getOrCreateField(6).getSInt64());
73 ASSERT_EQ(42u, parsedMessage->getOrCreateField(7).getUInt32());
74 ASSERT_EQ(10429496729600u, parsedMessage->getOrCreateField(8).getUInt64());
75 ASSERT_EQ(-42, parsedMessage->getOrCreateField(9).getInt32());
76 ASSERT_EQ(-10429496729600, parsedMessage->getOrCreateField(10).getInt64());
77 ASSERT_EQ(0.98765f, parsedMessage->getOrCreateField(11).getFloat());
78 ASSERT_EQ(0.987654321, parsedMessage->getOrCreateField(12).getDouble());
79 ASSERT_EQ(true, parsedMessage->getOrCreateField(13).getBool());
80
81 ASSERT_EQ("Hello World and Welcome!", parsedMessage->getOrCreateField(14).getRaw().toStringView());
82 ASSERT_EQ("<some bytes here>", parsedMessage->getOrCreateField(15).getRaw().toStringView());
83}
84
85TEST(Message, canEncodeSingle) {
86 auto message = makeShared<Protobuf::Message>();

Callers

nothing calls this directly

Calls 15

set_int32Method · 0.80
set_int64Method · 0.80
set_uint32Method · 0.80
set_uint64Method · 0.80
set_sint32Method · 0.80
set_sint64Method · 0.80
set_fixed32Method · 0.80
set_fixed64Method · 0.80
set_sfixed32Method · 0.80
set_sfixed64Method · 0.80
set_float_Method · 0.80
set_double_Method · 0.80

Tested by

no test coverage detected