public async Task Should_handle_slightly_in_the_future_properly()
        {
            Task <ConsumeContext <A> > handler = SubscribeHandler <A>();

            await HangfireEndpoint.ScheduleSend(Bus.Address, DateTime.UtcNow + TimeSpan.FromSeconds(2), new A { Name = "Joe" });

            await handler;
        }
        public async Task Should_handle_now_properly()
        {
            Task <ConsumeContext <A> > handler = SubscribeHandler <A>();

            await HangfireEndpoint.ScheduleSend(Bus.Address, DateTime.UtcNow, new A { Name = "Joe" });

            await handler;
        }
        public async Task Should_properly_send_the_message()
        {
            Task <ConsumeContext <A> > handler = SubscribeHandler <A>();

            await HangfireEndpoint.ScheduleSend(Bus.Address, DateTime.UtcNow + TimeSpan.FromHours(-1), new A { Name = "Joe" });

            await handler;
        }
Example #4
0
        public async Task Should_handle_now_properly()
        {
            var scheduleId = NewId.NextGuid().ToString("N");
            await HangfireEndpoint.ScheduleSend(InputQueueAddress, DateTime.UtcNow + TimeSpan.FromSeconds(20), new Done { Name = "Joe" });

            await HangfireEndpoint.ScheduleRecurringSend(InputQueueAddress, new MySchedule(scheduleId), new Interval { Name = "Joe" });

            await _done;

            Assert.AreEqual(8, _count, "Expected to see 8 interval messages");
        }
        public async Task Should_be_able_to_cancel_a_future_event()
        {
            Task <ConsumeContext <A> > handler = SubscribeHandler <A>();

            var scheduledMessage = await HangfireEndpoint.ScheduleSend(Bus.Address, DateTime.UtcNow + TimeSpan.FromSeconds(120), new A { Name = "Joe" });

            await Task.Delay(2000);

            await HangfireEndpoint.CancelScheduledSend(scheduledMessage);

            await Task.Delay(2000);
        }
        public async Task Should_include_message_headers()
        {
            Task <ConsumeContext <A> > handler = SubscribeHandler <A>();

            Guid requestId      = Guid.NewGuid();
            Guid correlationId  = Guid.NewGuid();
            Guid conversationId = Guid.NewGuid();
            Guid initiatorId    = Guid.NewGuid();
            await HangfireEndpoint.ScheduleSend(Bus.Address, DateTime.UtcNow, new A { Name = "Joe" }, Pipe.Execute <SendContext>(x =>
            {
                x.FaultAddress    = Bus.Address;
                x.ResponseAddress = InputQueueAddress;
                x.RequestId       = requestId;
                x.CorrelationId   = correlationId;
                x.ConversationId  = conversationId;
                x.InitiatorId     = initiatorId;

                x.Headers.Set("Hello", "World");
            }));

            ConsumeContext <A> context = await handler;

            Assert.AreEqual(Bus.Address, context.FaultAddress);
            Assert.AreEqual(InputQueueAddress, context.ResponseAddress);
            Assert.IsTrue(context.RequestId.HasValue);
            Assert.AreEqual(requestId, context.RequestId.Value);
            Assert.IsTrue(context.CorrelationId.HasValue);
            Assert.AreEqual(correlationId, context.CorrelationId.Value);
            Assert.IsTrue(context.ConversationId.HasValue);
            Assert.AreEqual(conversationId, context.ConversationId.Value);
            Assert.IsTrue(context.InitiatorId.HasValue);
            Assert.AreEqual(initiatorId, context.InitiatorId.Value);

            object value;

            Assert.IsTrue(context.Headers.TryGetHeader("Hello", out value));
            Assert.AreEqual("World", value);
        }
Example #7
0
        public async Task Should_cancel_recurring_schedule()
        {
            var scheduleId = Guid.NewGuid().ToString();

            await HangfireEndpoint.ScheduleSend(InputQueueAddress, DateTime.UtcNow + TimeSpan.FromSeconds(11), new Done { Name = "Joe" });

            var scheduledRecurringMessage =
                await HangfireEndpoint.ScheduleRecurringSend(InputQueueAddress, new MyCancelableSchedule(scheduleId), new Interval { Name = "Joe" });

            await _done;

            var countBeforeCancel = _count;

            Assert.AreEqual(8, _count, "Expected to see 8 interval messages");

            await Bus.CancelScheduledRecurringSend(scheduledRecurringMessage);

            await HangfireEndpoint.ScheduleSend(InputQueueAddress, DateTime.UtcNow + TimeSpan.FromSeconds(11), new DoneAgain { Name = "Joe" });

            await _doneAgain;

            Assert.AreEqual(countBeforeCancel, _count, "Expected to see the count matches.");
        }
        public async Task Should_reschedule()
        {
            var handler  = SubscribeHandler <A>();
            var id       = NewId.NextGuid();
            var expected = "Joe 2";
            await HangfireEndpoint.ScheduleSend(Bus.Address, TimeSpan.FromSeconds(120), new A
            {
                Id   = id,
                Name = "Joe"
            });

            await Task.Delay(2000);

            await HangfireEndpoint.ScheduleSend(Bus.Address, TimeSpan.FromSeconds(5), new A
            {
                Id   = id,
                Name = expected
            });

            ConsumeContext <A> result = await handler;

            Assert.AreEqual(expected, result.Message.Name);
        }