Пример #1
0
        /// <summary>
        /// Finds the states and transitions in state machine.
        /// </summary>
        /// <param name="instanceDesignNode">The instance design node.</param>
        /// <param name="allStates">All states.</param>
        /// <param name="allTransitions">All transitions.</param>
        private static void FindStatesAndTransitionsInStateMachine(InstanceDesign <UAOOI.SemanticData.UAModelDesignExport.XML.ObjectDesign> instanceDesignNode, List <string> allStates, List <Transition> allTransitions)
        {
            string fromState = "";
            string toState   = "";
            string hasCause  = "";
            NodeDesign <OpcUaModelCompiler.ObjectDesign> nd = (NodeDesign <UAOOI.SemanticData.UAModelDesignExport.XML.ObjectDesign>)instanceDesignNode;

            if ((instanceDesignNode.TypeDefinition.Name.ToString() == initialStateTypeString) ||
                (instanceDesignNode.TypeDefinition.Name.ToString() == stateTypeString) ||
                (instanceDesignNode.TypeDefinition.Name.ToString().Contains(stateTypeString)))
            {
                allStates.Add(nd.SymbolicName.Name);
            }
            else if (instanceDesignNode.TypeDefinition.Name.ToString() == transitionTypeString)
            {
                foreach (OpcUaModelCompiler.Reference reference in ((ObjectDesign)nd.Parent).References.References)
                {
                    if (reference.ReferenceType.Name == fromStateString)
                    {
                        fromState = reference.TargetId.Name;
                    }
                    else if (reference.ReferenceType.Name == toStateString)
                    {
                        toState = reference.TargetId.Name;
                    }
                    else if (reference.ReferenceType.Name == hasCauseString)
                    {
                        hasCause = reference.TargetId.Name;
                    }
                }
                allTransitions.Add(new Transition(fromState, toState, hasCause, instanceDesignNode));
            }
            return;
        }
            internal override NodeDesign Export(List <string> path, Action <InstanceDesign, List <string> > createInstanceType)
            {
                NodeDesign _nd = new NodeDesign()
                {
                };

                base.UpdateNode(_nd, path, createInstanceType);
                return(_nd);
            }
Пример #3
0
 private static void CompareNodeDesign(NodeDesign expected, NodeDesign actual)
 {
     Assert.AreEqual <string>(expected.BrowseName, actual.BrowseName);
     UnitTestsExtensions.Compare(expected.DisplayName, actual.DisplayName);
     UnitTestsExtensions.Compare(expected.Description, actual.Description);
     Compare(expected.Children, actual.Children);
     Compare(expected.References, actual.References);
     Compare(expected.SymbolicName, actual.SymbolicName, "NodeDesign.SymbolicName");
     Compare(expected.SymbolicId, actual.SymbolicId, "NodeDesign.SymbolicId");
     Assert.AreEqual <bool>(expected.IsDeclaration, actual.IsDeclaration);
     Assert.AreEqual <uint>(expected.NumericId, actual.NumericId);
     Assert.AreEqual <bool>(expected.NumericIdSpecified, actual.NumericIdSpecified);
     Assert.AreEqual <string>(expected.StringId, actual.StringId);
     Assert.AreEqual <uint>(expected.WriteAccess, actual.WriteAccess);
     Assert.AreEqual <string>(expected.StringId, actual.StringId);
     Assert.AreEqual <uint>(expected.PartNo, actual.PartNo);
 }
Пример #4
0
        public void Setup()
        {
            _shimObject = ShimsContext.Create();

            _propertyBuilderObject        = new PropertyBuilderForm();
            _propertyBuilderPrivateObject = new PrivateObject(_propertyBuilderObject);

            _propertyGridTreeView = (WinForms.PropertyGrid)_propertyBuilderPrivateObject.GetField("_pgTreeView");
            _nodeDesign           = new NodeDesign();

            _treeViewMenu     = (WinForms.TreeView)_propertyBuilderPrivateObject.GetField("_tvTree");
            _btnMoveUp        = (ButtonXP)_propertyBuilderPrivateObject.GetField("_bMoveUp");
            _btnMoveDown      = (ButtonXP)_propertyBuilderPrivateObject.GetField("_bMoveDown");
            _btnChildSibling  = (ButtonXP)_propertyBuilderPrivateObject.GetField("_bChildSlibing");
            _btnSiblingParent = (ButtonXP)_propertyBuilderPrivateObject.GetField("_bSlibingParent");
            _btnAddChild      = (ButtonXP)_propertyBuilderPrivateObject.GetField("_bAddChild");
            _btnRemoveNode    = (ButtonXP)_propertyBuilderPrivateObject.GetField("_bDelete");
        }
Пример #5
0
        //private
        protected void ExportNodes(List <NodeDesign> members, List <string> path, Action <InstanceDesign, List <string> > createInstanceType)
        {
            NodeFactoryBase _currItem = null;

            foreach (NodeFactoryBase _item in m_Nodes)
            {
                try
                {
                    _currItem = _item;
                    NodeDesign _newNode = _item.Export(new List <string>(path), createInstanceType);
                    members.Add(_newNode);
                }
                catch (Exception _ex)
                {
                    string _msg = String.Format("Error caught while processing the node {0}. The message: {1} at {2}.", _currItem.SymbolicName, _ex.Message, _ex.StackTrace);
                    TraceEvent(TraceMessage.BuildErrorTraceMessage(BuildError.NonCategorized, _msg));
                }
            }
        }
        public void DisplayNameTestMethod()
        {
            int         _counter = 0;
            NodeFactory _nf      = new NodeFactory(x => _counter++);

            Assert.AreEqual <int>(0, _counter);
            LocalizedText _lt = new LocalizedText()
            {
                Key = "localeField", Value = "valueField"
            };

            _nf.AddDisplayName(_lt.Key, _lt.Value);
            Assert.AreEqual <int>(0, _counter);
            _nf.AddDisplayName(_lt.Key, _lt.Value);
            Assert.AreEqual <int>(1, _counter);
            _nf.AddDisplayName(_lt.Key, _lt.Value);
            Assert.AreEqual <int>(2, _counter);
            List <string> _path = new List <string>();
            NodeDesign    _nd   = _nf.Export(_path, (x, Y) => { });

            _lt.Compare(_nd.DisplayName);
        }
        public void NodeFactoryExportTest()
        {
            int         _counter = 0;
            NodeFactory _nf      = new NodeFactory(x => _counter++);

            _nf.AccessRestrictions = AccessRestrictions.EncryptionRequired | AccessRestrictions.SessionRequired | AccessRestrictions.SigningRequired;
            _nf.BrowseName         = BrowseNames.AggregateFunction_MinimumActualTime.ToString();
            _nf.Category           = new string[] { "cat1", "cat2" };
            _nf.DataTypePurpose    = InformationModelFactory.DataTypePurpose.ServicesOnly;
            _nf.ReleaseStatus      = InformationModelFactory.ReleaseStatus.Draft;
            _nf.SymbolicName       = new XmlQualifiedName("name", "ns");
            List <string> _path = new List <string>();
            NodeDesign    _md   = _nf.Export(_path, (x, Y) => { });

            Assert.AreEqual <string>(BrowseNames.AggregateFunction_MinimumActualTime.ToString(), _md.BrowseName);
            Assert.AreEqual <string>("cat1, cat2", _md.Category);
            Assert.IsNull(_md.Children);
            Assert.IsFalse(_md.NumericIdSpecified);
            Assert.AreEqual <uint>(0, _md.PartNo); //is not copied form the UANodeSet;
            Assert.AreEqual <XML.DataTypePurpose>(DataTypePurpose.ServicesOnly, _md.Purpose);
            Assert.AreEqual <XML.ReleaseStatus>(XML.ReleaseStatus.Draft, _md.ReleaseStatus);
            Assert.AreEqual <XmlQualifiedName>(new XmlQualifiedName("name", "ns"), _md.SymbolicName);
        }