public void CanConfigureAWorkflowWithTwoVersions() { var workflowConfigurationBuilder = new WorkflowConfigurationBuilder(); workflowConfigurationBuilder .ConfigureWorkflow("LoginWorkflow") .WithVersion(1) .ImplementedBy(typeof(TwoFactorLoginWorkflow)) .WithVersion(2) .ImplementedBy(typeof(ThreeFactorLoginWorkflow)); var discoverer = new WorkflowDiscoverer(workflowConfigurationBuilder.BuildConfiguration()); IEnumerable <WorkflowDescriptor> workflowDescriptors = discoverer.GetConfiguredWorkflows(); Assert.That(workflowDescriptors.Count(), Is.EqualTo(2)); var firstWorkflowDescriptor = workflowDescriptors.First(); Assert.That(firstWorkflowDescriptor.Name, Is.EqualTo("LoginWorkflow")); Assert.That(firstWorkflowDescriptor.Version, Is.EqualTo(1)); var lastWorkflowDescriptor = workflowDescriptors.Last(); Assert.That(lastWorkflowDescriptor.Name, Is.EqualTo("LoginWorkflow")); Assert.That(lastWorkflowDescriptor.Version, Is.EqualTo(2)); }
public void WhenAWorkflowIsConfiguredItStartingActionsAreAvailable() { var workflowConfigurationBuilder = new WorkflowConfigurationBuilder(); workflowConfigurationBuilder .ConfigureWorkflow("LoginWorkflow") .WithVersion(1) .ImplementedBy(typeof(TwoFactorLoginWorkflow)); var actionLoader = new WorkflowActionLoader(); var descriptor = new WorkflowDescriptor("LoginWorkflow", 1); IEnumerable <Type> startingActions = actionLoader.GetWorkflowStartingActions(descriptor); Assert.That(startingActions.Count(), Is.EqualTo(1)); var firstActionType = startingActions.First(); Assert.That(firstActionType, Is.EqualTo(typeof(LoginAction))); }