コード例 #1
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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"));
        }
コード例 #2
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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());
        }
コード例 #3
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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));
        }
コード例 #4
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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);
        }
コード例 #5
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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"));
        }
コード例 #6
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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>());
        }
コード例 #7
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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"));
        }
コード例 #8
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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));
        }
コード例 #9
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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);
        }
コード例 #10
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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);
        }
コード例 #11
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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)));
        }
コード例 #12
0
ファイル: TransformBackTest.cs プロジェクト: dkschlos/PVM.NET
        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"));
        }
コード例 #13
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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>());
        }
コード例 #14
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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);
        }
コード例 #15
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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);
        }
コード例 #16
0
ファイル: TransformTest.cs プロジェクト: dkschlos/PVM.NET
        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"));
        }