public void Should_return_scheduling_decision_for_child_timer_when_parent_timer_is_fired()
        {
            const string parentTimer = "parent", childTimer = "child";
            var          childTimeout         = TimeSpan.FromSeconds(2);
            var          workflow             = new WorkflowWithParentChildTimers(parentTimer, childTimer, childTimeout);
            var          timerFiredEventGraph = CreateTimerFiredEventGraph(parentTimer);

            var decisions = workflow.NewExecutionFor(timerFiredEventGraph).Execute();


            Assert.That(decisions, Is.EquivalentTo(new[] { new ScheduleTimerDecision(Identity.Timer(childTimer), childTimeout) }));
        }
        public void Should_return_scheduling_decision_for_child_timer_when_parent_timer_is_fired()
        {
            const string parentTimer = "parent", childTimer = "child";
            var          childTimeout = TimeSpan.FromSeconds(2);
            var          workflow     = new WorkflowWithParentChildTimers(parentTimer, childTimer, childTimeout);

            _eventsBuilder.AddNewEvents(TimerFiredEventGraph(parentTimer));
            var decisions = workflow.Decisions(_eventsBuilder.Result()).ToArray();


            var scheduleId = Identity.Timer(childTimer).ScheduleId();

            Assert.That(decisions.Length, Is.EqualTo(1));
            decisions[0].AssertWorkflowItemTimer(scheduleId, childTimeout);
        }