public void Returns_the_scheduling_decision_for_workflow_item() { var workflowItem = TimerItem.New(Identity.Timer("Somename"), _workflow.Object); var workflowAction = WorkflowAction.JumpTo(null, workflowItem); var decisions = workflowAction.Decisions(Mock.Of <IWorkflow>()); Assert.That(decisions, Is.EquivalentTo(workflowItem.ScheduleDecisions())); }
public void Can_be_returned_as_workflow_action_when_scheduling_the_timer() { var workflow = new WorkflowToReturnScheduleTimerAction(); var completedActivityEvent = CreateCompletedActivityEvent(ActivityName, ActivityVersion, PositionalName); var workflowAction = completedActivityEvent.Interpret(workflow); Assert.That(workflowAction, Is.EqualTo(WorkflowAction.JumpTo(TimerItem.New(Identity.Timer("SomeTimer"), null)))); }
public void Returns_timer_decision_when_rescheduled_after_a_timeout() { var workflowItem = new ActivityItem(Identity.New("name", "ver", "pos"), _workflow.Object); var workflowAction = WorkflowAction.JumpTo(workflowItem).After(TimeSpan.FromSeconds(2)); var decisions = workflowAction.GetDecisions(); Assert.That(decisions, Is.EquivalentTo(new[] { new ScheduleTimerDecision(Identity.New("name", "ver", "pos"), TimeSpan.FromSeconds(2), true) })); }
public void Returns_timer_decision_when_jumped_after_a_timeout() { var identity = Identity.New("name", "ver", "pos"); var workflowItem = new ActivityItem(identity, _workflow.Object); var workflowAction = WorkflowAction.JumpTo(null, workflowItem).After(TimeSpan.FromSeconds(2)); var decisions = workflowAction.Decisions(Mock.Of <IWorkflow>()).ToArray(); Assert.That(decisions.Count(), Is.EqualTo(1)); decisions[0].AssertRescheduleTimer(identity.ScheduleId(), TimeSpan.FromSeconds(2)); }
public void Schedule_the_timer_with_default_scheduleid_when_it_has_not_already_scheduled() { var identity = Identity.Timer("Somename"); var workflowItem = TimerItem.New(identity, _workflow.Object); var workflowAction = WorkflowAction.JumpTo(null, workflowItem); var decisions = workflowAction.Decisions(Mock.Of <IWorkflow>()).ToArray(); Assert.That(decisions.Count(), Is.EqualTo(1)); decisions[0].AssertWorkflowItemTimer(identity.ScheduleId(), TimeSpan.Zero); }
public void Reuse_the_scheduleid_when_it_has_already_scheduled() { const string runId = "runid"; var identity = Identity.Timer("Somename"); var scheduleId = identity.ScheduleId(runId + "Reset"); _builder.AddWorkflowRunId(runId); _builder.AddProcessedEvents(_graphBuilder.TimerStartedGraph(scheduleId, TimeSpan.Zero).ToArray()); _workflow.SetupGet(w => w.WorkflowHistoryEvents).Returns(_builder.Result()); var workflowItem = TimerItem.New(identity, _workflow.Object); var workflowAction = WorkflowAction.JumpTo(null, workflowItem); var decisions = workflowAction.Decisions(Mock.Of <IWorkflow>()).ToArray(); Assert.That(decisions.Count(), Is.EqualTo(1)); decisions[0].AssertWorkflowItemTimer(scheduleId, TimeSpan.Zero); }
public void Equality_tests() { Assert.True(WorkflowAction.JumpTo(TimerItem.New(Identity.Timer("Somename"), _workflow.Object)).Equals(WorkflowAction.JumpTo(TimerItem.New(Identity.Timer("Somename"), _workflow.Object)))); Assert.False(WorkflowAction.JumpTo(TimerItem.New(Identity.Timer("Somename"), _workflow.Object)).Equals(WorkflowAction.JumpTo(TimerItem.New(Identity.Timer("Somename1"), _workflow.Object)))); }