public void CanSerializeEnumMessageAndDeserializeWithoutEnum() { var typeRegistry = new MessageTypeRegistry(); var serializer = new RosMessageSerializer(typeRegistry); var ms = new MemoryStream(); const int expectedGoalId = 17; const byte expectedStatus = 6; const string expectedText = "test"; var message = new EnumGoalStatus { GoalId = expectedGoalId, Status = (GoalStatusValue)expectedStatus, Text = expectedText }; serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = (GoalStatus)serializer.Deserialize(typeof(GoalStatus), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.GoalId.Should().Be(expectedGoalId); deserializedMessage.Status.Should().Be(expectedStatus); deserializedMessage.Text.Should().Be(expectedText); }
public void CanSerializeEquivalentIntMessageReverse() { var typeRegistry = new MessageTypeRegistry(); var serializer = new RosMessageSerializer(typeRegistry); var ms = new MemoryStream(); const int expectedValue = 17; const string expectedText = "It could be any string"; var message = new EquivalentIntMessages.ShortMessage() { Value = expectedValue, Text = expectedText }; serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = (EquivalentIntMessages.IntMessage)serializer.Deserialize(typeof(EquivalentIntMessages.IntMessage), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.Value.Should().Be(expectedValue); deserializedMessage.Text.Should().Be(expectedText); }
public void CanSerializeEmptyMessage() { var typeRegistry = new MessageTypeRegistry(); var serializer = new RosMessageSerializer(typeRegistry); var ms = new MemoryStream(); var message = new Empty(); serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = serializer.Deserialize(message.GetType(), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.Should().NotBeSameAs(message); }
private void Test <TMessage>(TMessage message) where TMessage : IIntValues { var serializer = new RosMessageSerializer(new MessageTypeRegistry()); var ms = new MemoryStream(); int[] expectedValues = { 1, 2, 3, 4, 5 }; int expectedSum = 15; message.Values = expectedValues; serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = (TMessage)serializer.Deserialize(typeof(TMessage), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.Values.All(x => x > 0).Should().BeTrue("all items should be > 0"); deserializedMessage.Values.Sum().Should().Be(expectedSum, "the sum of all items should be 15"); }