public void SetDeserializer_GetDeserializer() { var deserializer = new ProtobufMessageDeserializer(); Func<Stream, IMessage> deserializerFunc = Serializer.Deserialize<TestMessage>; deserializer.SetDeserializer(1, deserializerFunc); Assert.AreEqual(deserializerFunc, deserializer.GetDeserializer(1)); }
protected override EventHandler <BasicDeliverEventArgs> CreateOnMessageReceivedEventHandler(IModel channel) { var deserializer = new ProtobufMessageDeserializer <ExecutionProcessedEvent>(); void OnMessageReceived(object o, BasicDeliverEventArgs basicDeliverEventArgs) { try { var message = deserializer.Deserialize(basicDeliverEventArgs.Body); var orders = Mapper.Map <IEnumerable <Order> >(message).ToList(); foreach (var order in orders.Where(x => WalletIds.Contains(x.WalletId.ToString()))) { Log.Info("Order from ME (ExecutionProcessedEvent)", context: $"order: {new {order.Id, order.Status, order.SequenceNumber}.ToJson()}"); } Queue.Enqueue(new CustomQueueItem <IEnumerable <Order> >(orders, basicDeliverEventArgs.DeliveryTag, channel)); } catch (Exception e) { Log.Error(e); channel.BasicReject(basicDeliverEventArgs.DeliveryTag, false); } } return(OnMessageReceived); }
public void SetDeserializer_GetDeserializer() { var deserializer = new ProtobufMessageDeserializer(); Func <Stream, IMessage> deserializerFunc = Serializer.Deserialize <TestMessage>; deserializer.SetDeserializer(1, deserializerFunc); Assert.AreEqual(deserializerFunc, deserializer.GetDeserializer(1)); }
public void Deserialize_non_mapped_MessageTypeId_throws_MessageDeserializationException() { var deserializer = new ProtobufMessageDeserializer(); using (var mem = new MemoryStream()) using (var writer = new BinaryWriter(mem)) { writer.Write((ushort)1); mem.Position = 0; Assert.Throws<MessageDeserializationException>(() => deserializer.Deserialize(mem.ToArray())); } }
public void Deserialize_non_mapped_MessageTypeId_throws_MessageDeserializationException() { var deserializer = new ProtobufMessageDeserializer(); using (var mem = new MemoryStream()) using (var writer = new BinaryWriter(mem)) { writer.Write((ushort)1); mem.Position = 0; Assert.Throws <MessageDeserializationException>(() => deserializer.Deserialize(mem.ToArray())); } }
public void AssignAssemblyMessageTypes() { var deserializer = new ProtobufMessageDeserializer(); deserializer.AssignAssemblyMessageTypes(Assembly.GetExecutingAssembly()); using (var mem = new MemoryStream()) using (var writer = new BinaryWriter(mem)) { writer.Write((ushort)1); mem.Position = 0; var message = deserializer.Deserialize(mem.ToArray()); Assert.AreEqual(typeof(TestMessage), message.GetType()); } }
public void Deserialize_existing_MessageTypeId() { var deserializer = new ProtobufMessageDeserializer(); deserializer.SetDeserializer(1, Serializer.Deserialize<TestMessage>); using (var mem = new MemoryStream()) using (var writer = new BinaryWriter(mem)) { writer.Write((ushort)1); mem.Position = 0; var message = deserializer.Deserialize(mem.ToArray()); Assert.AreEqual(typeof(TestMessage), message.GetType()); } }
public void AssignAssemblyMessageTypes() { var deserializer = new ProtobufMessageDeserializer(); deserializer.AssignAssemblyMessageTypes(Assembly.GetExecutingAssembly()); using (var mem = new MemoryStream()) using (var writer = new BinaryWriter(mem)) { writer.Write((ushort)1); mem.Position = 0; var message = deserializer.Deserialize(mem.ToArray()); Assert.AreEqual(typeof(TestMessage), message.GetType()); } }
public void Deserialize_existing_MessageTypeId() { var deserializer = new ProtobufMessageDeserializer(); deserializer.SetDeserializer(1, Serializer.Deserialize <TestMessage>); using (var mem = new MemoryStream()) using (var writer = new BinaryWriter(mem)) { writer.Write((ushort)1); mem.Position = 0; var message = deserializer.Deserialize(mem.ToArray()); Assert.AreEqual(typeof(TestMessage), message.GetType()); } }
protected override EventHandler <BasicDeliverEventArgs> CreateOnMessageReceivedEventHandler(IModel channel) { var orderPlacedDeserializer = new ProtobufMessageDeserializer <OrderPlacedEvent>(); var orderCancelledDeserializer = new ProtobufMessageDeserializer <OrderCancelledEvent>(); void OnMessageReceived(object o, BasicDeliverEventArgs basicDeliverEventArgs) { try { switch (basicDeliverEventArgs.RoutingKey) { case nameof(OrderPlacedEvent): Queue.Enqueue(new CustomQueueItem <OrderEvent>( Mapper.Map <OrderEvent>( orderPlacedDeserializer.Deserialize(basicDeliverEventArgs.Body)), basicDeliverEventArgs.DeliveryTag, channel)); break; case nameof(OrderCancelledEvent): Queue.Enqueue(new CustomQueueItem <OrderEvent>( Mapper.Map <OrderEvent>( orderCancelledDeserializer.Deserialize(basicDeliverEventArgs.Body)), basicDeliverEventArgs.DeliveryTag, channel)); break; default: throw new ArgumentOutOfRangeException(basicDeliverEventArgs.RoutingKey); } } catch (Exception e) { Log.Error(e); channel.BasicReject(basicDeliverEventArgs.DeliveryTag, false); } } return(OnMessageReceived); }
protected override EventHandler <BasicDeliverEventArgs> CreateOnMessageReceivedEventHandler(IModel channel) { var deserializer = new ProtobufMessageDeserializer <ExecutionEvent>(); void OnMessageReceived(object o, BasicDeliverEventArgs basicDeliverEventArgs) { try { var message = deserializer.Deserialize(basicDeliverEventArgs.Body); Queue.Enqueue(new CustomQueueItem <ExecutionEvent>(message, basicDeliverEventArgs.DeliveryTag, channel)); } catch (Exception e) { Log.Error(e); channel.BasicReject(basicDeliverEventArgs.DeliveryTag, false); } } return(OnMessageReceived); }