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));
        }
Exemple #4
0
            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);
            }