public void MessageDescriptor_Should_Not_Retrieve_ArgumentsDescriptors_When_PackedMessage_DoesNot_Have_A_Full_Header() { var messagePacked = new byte[] { 1, 2, 3, 4, 5, 6 }; var argumentDescriptors = MessageDescriptor.GetArguments(messagePacked); Assert.Empty(argumentDescriptors); }
public void MessageDescriptor_Should_Retrieve_Arguments_From_A_PackedMessage(params string[] arguments) { var protobufMessageSerialized = new TestMessage { Data = "FooBar" }.ToByteArray(); var argumentsDescriptors = GetArgumentsDescriptors(arguments); ReadOnlySpan <byte> messagePacked = MessageDescriptor.PackMessage(1, protobufMessageSerialized, argumentsDescriptors); var descriptors = MessageDescriptor.GetArguments(messagePacked); var i = 0; foreach (var descriptor in descriptors) { var protobufObject = new TestMessage(); protobufObject.MergeFrom(descriptor.Argument); Assert.Equal(ARGUMENT_TYPE, descriptor.Type); Assert.Equal(arguments[i++], protobufObject.Data); } }