Beispiel #1
0
        public void AddsIncomingTransitionOnNode()
        {
            var model = new WorkflowDefinitionModel();
            model.Nodes.Add(new NodeModel
            {
                Identifier = "node",
                OutgoingTransitions = new[]
                {
                    new TransitionModel
                    {
                        Identifier = "transitionId",
                        Source = "node",
                        Destination = "destNode"
                    }
                }
            });
            model.Nodes.Add(new NodeModel
            {
                Identifier = "destNode"
            });
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            var destNode = definition.Nodes.First(n => n.Identifier == "destNode");
            Assert.That(destNode.IncomingTransitions.Count(), Is.EqualTo(1));
            var transition = destNode.IncomingTransitions.First();
            Assert.That(transition.Identifier, Is.EqualTo("transitionId"));
            Assert.That(transition.Source.Identifier, Is.EqualTo("node"));
        }
Beispiel #2
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 #3
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 #4
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 #5
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 #6
0
        public void AddsNestedWorkflow()
        {
            var model = new WorkflowDefinitionModel();
            model.Nodes.Add(new NodeModel
            {
                Identifier = "node",
                OutgoingTransitions = new[]
                {
                    new TransitionModel
                    {
                        Identifier = "transitionId",
                        Source = "node",
                        Destination = "nested"
                    }
                }
            });
            model.Nodes.Add(new WorkflowDefinitionModel
            {
                Identifier = "nested",
                OperationType = typeof (TakeDefaultTransitionOperation).AssemblyQualifiedName
            });
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            var nestedWorkflow = definition.Nodes.FirstOrDefault(n => n.Identifier == "nested");
            Assert.That(nestedWorkflow, Is.Not.Null);
            Assert.That(nestedWorkflow, Is.InstanceOf<IWorkflowDefinition>());
        }
Beispiel #7
0
        public void SetsWorkflowIdentifier()
        {
            var model = new WorkflowDefinitionModel {Identifier = "identifier"};
            model.Nodes.Add(new NodeModel
            {
                Identifier = "node"
            });
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            Assert.That(definition.Identifier, Is.EqualTo("identifier"));
        }
Beispiel #8
0
        public void SetsStartNodePropertyOnNode()
        {
            var model = new WorkflowDefinitionModel();
            model.Nodes.Add(new NodeModel
            {
                Identifier = "node",
                IsInitialNode = true
            });
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            var node = definition.Nodes.First();
            Assert.That(definition.InitialNode, Is.EqualTo(node));
        }
Beispiel #9
0
        public void SetsDefaultPropertyOnTransition()
        {
            var model = new WorkflowDefinitionModel();
            model.Nodes.Add(new NodeModel
            {
                Identifier = "node",
                OutgoingTransitions = new[]
                {
                    new TransitionModel
                    {
                        Identifier = "transitionId",
                        IsDefault = true,
                        Source = "node",
                        Destination = "destNode"
                    }
                }
            });
            model.Nodes.Add(new NodeModel
            {
                Identifier = "destNode"
            });
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            var transition = definition.Nodes.First(n => n.Identifier == "node").OutgoingTransitions.First();
            Assert.That(transition.IsDefault);
        }
Beispiel #10
0
        public void ReturnsEmptyWorkflowDefinitionIfModelIsEmpty()
        {
            var model = new WorkflowDefinitionModel();
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            Assert.That(definition, Is.Not.Null);
            Assert.That(definition.Nodes, Is.Empty);
            Assert.That(definition.OutgoingTransitions, Is.Empty);
            Assert.That(definition.IncomingTransitions, Is.Empty);
        }
Beispiel #11
0
        public void AddsOperationToNode()
        {
            var model = new WorkflowDefinitionModel();
            model.Nodes.Add(new NodeModel
            {
                Identifier = "node",
                OperationType = typeof (TestOperation).AssemblyQualifiedName
            });
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            Assert.That(definition.Nodes.First().Operation, Is.EqualTo(typeof (TestOperation)));
        }
Beispiel #12
0
        public void AddsNode()
        {
            var model = new WorkflowDefinitionModel();
            model.Nodes.Add(new NodeModel
            {
                Identifier = "node"
            });
            var transformer = new Transform.WorkflowDefinitionTransformer();

            IWorkflowDefinition definition = transformer.TransformBack(model);

            Assert.That(definition.Nodes.Count, Is.EqualTo(1));
            Assert.That(definition.Nodes.First().Identifier, Is.EqualTo("node"));
        }
Beispiel #13
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 #14
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 #15
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 #16
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"));
        }