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