public async Task Should_deserialize() { var contract = await MessageInitializerCache <RawContract> .InitializeMessage(new { Name = "Frank", Value = 27, InVar.Timestamp }); var jsonText = JsonConvert.SerializeObject(contract, JsonMessageSerializer.SerializerSettings); byte[] body = Encoding.UTF8.GetBytes(jsonText); SendRawMessage(body); ConsumeContext <RawContract> received = await _receivedA; Assert.AreEqual(contract.Name, received.Message.Name); Assert.AreEqual(contract.Value, received.Message.Value); Assert.AreEqual(contract.Timestamp, received.Message.Timestamp); }
public async Task Should_deserialize() { var contract = await MessageInitializerCache <RawContract> .InitializeMessage(new { Name = "Frank", Value = 27, InVar.Timestamp }); await using var ms = new MemoryStream(4000); XmlMessageSerializer.Serialize(ms, contract, typeof(RawContract)); var body = ms.ToArray(); SendRawMessage(body); ConsumeContext <RawContract> received = await _receivedA; Assert.AreEqual(contract.Name, received.Message.Name); Assert.AreEqual(contract.Value, received.Message.Value); Assert.AreEqual(contract.Timestamp, received.Message.Timestamp); }
Task <ScheduledMessage <T> > IMessageScheduler.ScheduleSend <T>(Uri destinationAddress, DateTime scheduledTime, object values, IPipe <SendContext> pipe, CancellationToken cancellationToken) { if (destinationAddress == null) { throw new ArgumentNullException(nameof(destinationAddress)); } if (values == null) { throw new ArgumentNullException(nameof(values)); } if (pipe == null) { throw new ArgumentNullException(nameof(pipe)); } var message = MessageInitializerCache <T> .InitializeMessage(values, cancellationToken); return(_provider.ScheduleSend(destinationAddress, scheduledTime, message, pipe, cancellationToken)); }
Task <ScheduledRecurringMessage <T> > IRecurringMessageScheduler.ScheduleRecurringSend <T>(Uri destinationAddress, RecurringSchedule schedule, object values, IPipe <SendContext> pipe, CancellationToken cancellationToken) { if (destinationAddress == null) { throw new ArgumentNullException(nameof(destinationAddress)); } if (values == null) { throw new ArgumentNullException(nameof(values)); } if (pipe == null) { throw new ArgumentNullException(nameof(pipe)); } Task <T> message = MessageInitializerCache <T> .InitializeMessage(values, cancellationToken); return(ScheduleRecurringSend(destinationAddress, schedule, message, pipe, cancellationToken)); }
/// <summary> /// Initialize a message using the specified input values (via an anonymous object, or an actual object) /// </summary> /// <param name="context"></param> /// <param name="values"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static Task <T> Init <T>(this ConsumeContext context, object values) where T : class { return(MessageInitializerCache <T> .InitializeMessage(context, values)); }