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