public async Task When_raising_future_event() { var scheduledTime = DateTime.Now.AddSeconds(200); var testCommand = new ScheduleEventInFutureCommand(scheduledTime, Guid.NewGuid().ToString(), "test value"); var futureEventEnvelop = (await Node.Prepare(testCommand).Expect <FutureEventScheduledEvent>().Execute()) .Message <FutureEventScheduledEvent>(); var cancelFutureEventCommand = new CancelFutureEventCommand(testCommand.AggregateId, testCommand.Value); var futureEventCancelation = (await Node.Prepare(cancelFutureEventCommand).Expect <FutureEventCanceledEvent>().Execute()) .Message <FutureEventCanceledEvent>(); //Cancelation_event_has_same_id_as_future_event() Assert.Equal(futureEventEnvelop.Id, futureEventCancelation.FutureEventId); //Scheduler_does_not_contain_job_for_future_event() var scheduler = Node.System.GetExtension <SchedulingExtension>().Scheduler; //scheduler needs time to cancel the event //TODO: remove sleep to explicit wait await Task.Delay(2000); var scheduleKey = FutureEventsSchedulingMessageHandler.CreateScheduleKey(futureEventEnvelop.Id, testCommand.AggregateId, nameof(TestFutureEventsAggregate)); var jobKey = new JobKey(scheduleKey.Name, scheduleKey.Group); Assert.False(await scheduler.CheckExists(jobKey)); }
public async Task When_raising_future_event() { _scheduledTime = DateTime.Now.AddSeconds(200); _testCommand = new ScheduleEventInFutureCommand(_scheduledTime, Guid.NewGuid(), "test value"); _futureEventEnvelop = (await GridNode.PrepareCommand(_testCommand) .Expect <FutureEventScheduledEvent>() .Execute()) .Message <FutureEventScheduledEvent>(); _cancelFutureEventCommand = new CancelFutureEventCommand(_testCommand.AggregateId, _testCommand.Value); _futureEventCancelation = (await GridNode.PrepareCommand(_cancelFutureEventCommand) .Expect <FutureEventCanceledEvent>() .Execute()) .Message <FutureEventCanceledEvent>(); }