Beispiel #1
0
        public void TransformsEmptyWorkflowDefinition()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var emptyWorkflow = new WorkflowDefinitionBuilder().BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(emptyWorkflow);

            Assert.That(result, Is.Not.Null);
            Assert.That(!result.Nodes.Any());
        }
Beispiel #2
0
        public void SetsInitialNodeProperty()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var workflow = new WorkflowDefinitionBuilder()
                    .AddNode()
                        .WithName("node")
                        .IsStartNode()
                    .BuildNode()
                .BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(workflow);
            Assert.That(result.Nodes.First().IsInitialNode);
        }
Beispiel #3
0
        public void TransformsSingleNodeWorkflowDefinition()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var workflow = new WorkflowDefinitionBuilder()
                    .AddNode()
                        .WithName("node")
                    .BuildNode()
                .BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(workflow);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Nodes.Count, Is.EqualTo(1));
            Assert.That(result.Nodes.First().Identifier, Is.EqualTo("node"));
        }
Beispiel #4
0
        public void SetsWorkflowOperationTypeProperty()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var workflow = new WorkflowDefinitionBuilder()
                    .AddNode()
                        .WithName("node")
                    .BuildNode()
                .BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(workflow);
            Assert.That(result.OperationType, Is.EqualTo(workflow.Operation.AssemblyQualifiedName));
        }
Beispiel #5
0
        public void TransformsNestedWorkflow()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var workflow = new WorkflowDefinitionBuilder()
                .WithIdentifier("testWorkflowDefinition")
                .AddNode()
                    .WithName("start")
                    .IsStartNode()
                    .AddTransition()
                        .WithName("transition")
                        .To("nested")
                    .BuildTransition()
                .BuildNode()
                .AddNode()
                    .WithName("nested")
                    .AddTransition()
                        .WithName("nestedToEnd")
                        .To("end")
                    .BuildTransition()
                .BuildSubWorkflow(new WorkflowDefinitionBuilder()
                    .WithIdentifier("subWorkflowDefinition")
                    .AddNode()
                        .IsStartNode()
                        .IsEndNode()
                        .WithName("subWorkflowNode")
                    .BuildNode()
                    .AsDefinitionBuilder())
                .AddNode()
                    .WithName("end")
                    .IsEndNode()
                .BuildNode()
                .BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(workflow);

            var nestedWorkflowNode = result.Nodes.First(n => n.Identifier == "nested");

            Assert.That(nestedWorkflowNode, Is.InstanceOf<WorkflowDefinitionModel>());
        }
Beispiel #6
0
        public void SetDefaultPropertyOnTransition()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var workflow = new WorkflowDefinitionBuilder()
                    .AddNode()
                        .WithName("node")
                        .AddTransition()
                            .WithName("toEnd")
                            .To("end")
                            .IsDefault()
                            .BuildTransition()
                    .BuildNode()
                    .AddNode()
                        .WithName("end")
                    .BuildNode()
                .BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(workflow);

            var startNode = result.Nodes.First(n => n.Identifier == "node");
            var transition = startNode.OutgoingTransitions.First();
            Assert.That(transition.IsDefault);
        }
Beispiel #7
0
        public void AddsOutgoingTransition()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var workflow = new WorkflowDefinitionBuilder()
                    .AddNode()
                        .WithName("node")
                        .AddTransition()
                            .WithName("toEnd")
                            .To("end")
                            .BuildTransition()
                    .BuildNode()
                    .AddNode()
                        .WithName("end")
                    .BuildNode()
                .BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(workflow);
            
            var startNode = result.Nodes.First(n => n.Identifier == "node");
            Assert.That(startNode.OutgoingTransitions.Count, Is.EqualTo(1));
            var transition = startNode.OutgoingTransitions.First();
            Assert.That(transition.Identifier, Is.EqualTo("toEnd"));
            Assert.That(transition.Source, Is.EqualTo("node"));
            Assert.That(transition.Destination, Is.EqualTo("end"));
            Assert.False(transition.IsDefault);
        }
Beispiel #8
0
        public void SetsIdentifierProperty()
        {
            var transformer = new Transform.WorkflowDefinitionTransformer();
            var workflow = new WorkflowDefinitionBuilder()
                    .WithIdentifier("ident")
                    .AddNode()
                        .WithName("node")
                    .BuildNode()
                .BuildWorkflow();

            WorkflowDefinitionModel result = transformer.Transform(workflow);
            Assert.That(result.Identifier, Is.EqualTo("ident"));
        }