public void should_use_default_type_id_factory_when_no_specific_registration_occured() { // Arrange var messageType = typeof(MessageType2); // Act / Assert var expectedMessageTypeId = new MessageTypeId(Crc32.Compute(Encoding.ASCII.GetBytes(messageType.FullName))); Assert.AreEqual(expectedMessageTypeId, MessageTypeId.Get(messageType)); }
public void should_use_specific_type_id_factory_if_registered() { // Arrange var messageType = typeof(MessageType3); MessageTypeId.RegisterFactory(t => new MessageTypeId(42)); // Act / Assert Assert.AreEqual(new MessageTypeId(42), MessageTypeId.Get(messageType)); }
public void should_register_specific_type_id() { // Arrange var messageType = typeof(MessageType1); var messageTypeId = new MessageTypeId(42); // Act MessageTypeId.Register(messageType, messageTypeId); // Assert Assert.AreEqual(new MessageTypeId(42), MessageTypeId.Get(messageType)); }
public static MessageSerializationEngine Create(SerializationMapping serializationMapping) { if (serializationMapping == null) { throw new ArgumentNullException(nameof(serializationMapping)); } var messageType = serializationMapping.MessageType; var messageTypeId = MessageTypeId.Get(messageType); var messageSerializer = (IBinaryMessageSerializer)Activator.CreateInstance(serializationMapping.MessageSerializerType); var messageEngine = new MessageSerializationEngine(messageTypeId, messageType, messageSerializer, serializationMapping.Allocator, serializationMapping.Releaser); return(messageEngine); }