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)); }