public void UpdateDuplicatedNodeIdTest() { Mock <IAddressSpaceBuildContext> _asMock = new Mock <IAddressSpaceBuildContext>(); UANodeContext _newNode = new UANodeContext(NodeId.Parse("ns=1;i=11"), _asMock.Object); Mock <IBuildErrorsHandling> _traceMock = new Mock <IBuildErrorsHandling>(); List <TraceMessage> _traceBuffer = new List <TraceMessage>(); _traceMock.Setup(x => x.TraceEvent(It.IsAny <TraceMessage>())).Callback <TraceMessage>(x => _traceBuffer.Add(x)); _newNode.Log = _traceMock.Object; UAVariable _nodeFactory = new UAVariable() { NodeId = "ns=1;i=47", BrowseName = "EURange", ParentNodeId = "ns=1;i=43", DataType = "i=884", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "EURange" } } }; _newNode.Update(_nodeFactory, x => Assert.Fail()); _newNode.Update(_nodeFactory, x => Assert.Fail()); Assert.AreEqual <int>(1, _traceBuffer.Count); Assert.AreEqual <string>(_traceBuffer[0].BuildError.Identifier, BuildError.NodeIdDuplicated.Identifier); }
public void RemoveInheritedValuesTest() { UAVariable _derivedNode = new UAVariable() { NodeId = "ns=1;i=47", BrowseName = "EURange", ParentNodeId = "ns=1;i=43", DataType = "i=884", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "EURange" } } }; UANode _baseNode = new UAVariable() { NodeId = "i=17568", BrowseName = "EURange", ParentNodeId = "i=15318", DataType = "i=884", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "EURange" } } }; Mock <IAddressSpaceBuildContext> _asMock = new Mock <IAddressSpaceBuildContext>(); IUANodeContext _derivedNodeContext = new UANodeContext(NodeId.Parse("ns=1;i=47"), _asMock.Object); _derivedNodeContext.Update(_derivedNode, x => Assert.Fail()); UANodeContext _baseNodeContext = new UANodeContext(NodeId.Parse("i=17568"), _asMock.Object); _baseNodeContext.Update(_baseNode, x => Assert.Fail()); _derivedNodeContext.RemoveInheritedValues(_baseNodeContext); Assert.AreEqual <string>("EURange", _derivedNode.BrowseName); Assert.IsNull(_derivedNode.DataType); Assert.IsNull(_derivedNode.Description); }
public void EqualsUAVariableTestMethod() { UAVariable _derivedNode = new UAVariable() { NodeId = "ns=1;i=47", BrowseName = "EURange", ParentNodeId = "ns=1;i=43", DataType = "i=884", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "EURange" } } }; UANode _baseNode = new UAVariable() { NodeId = "i=17568", BrowseName = "EURange", ParentNodeId = "i=15318", DataType = "i=884", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "EURange" } } }; Mock <IAddressSpaceBuildContext> _asMock = new Mock <IAddressSpaceBuildContext>(); IUANodeContext _derivedNodeContext = new UANodeContext(NodeId.Parse("ns=1;i=47"), _asMock.Object); _derivedNodeContext.Update(_derivedNode, x => Assert.Fail()); UANodeContext _baseNodeContext = new UANodeContext(NodeId.Parse("i=17568"), _asMock.Object); _baseNodeContext.Update(_baseNode, x => Assert.Fail()); Assert.IsTrue(_derivedNode.Equals(_baseNode)); Assert.IsTrue(_derivedNodeContext.Equals(_baseNodeContext)); }
public void ConstructorNodeIdTest() { Mock <IAddressSpaceBuildContext> _addressSpaceMock = new Mock <IAddressSpaceBuildContext>(); UANodeContext _toTest = new UANodeContext(NodeId.Parse("ns=1;i=11"), _addressSpaceMock.Object); Assert.IsNotNull(_toTest.BrowseName); Assert.IsTrue(new QualifiedName() == _toTest.BrowseName); Assert.IsFalse(_toTest.InRecursionChain); Assert.IsFalse(_toTest.IsProperty); Assert.IsFalse(((IUANodeBase)_toTest).IsPropertyVariableType); Assert.IsFalse(_toTest.ModelingRule.HasValue); Assert.IsNotNull(_toTest.NodeIdContext); Assert.IsTrue(_toTest.NodeIdContext.ToString() == "ns=1;i=11"); Assert.IsNull(_toTest.UANode); XML.UANode _node = UnitTest.Helpers.TestData.CreateUAObject(); int _registerReferenceCounter = 0; _toTest.Update(_node, x => _registerReferenceCounter++); Assert.AreEqual <int>(2, _registerReferenceCounter); Assert.IsNotNull(_toTest.BrowseName); Assert.AreEqual <QualifiedName>(new QualifiedName("NewUAObject", 1), _toTest.BrowseName); Assert.IsFalse(_toTest.InRecursionChain); Assert.IsFalse(_toTest.IsProperty); Assert.IsFalse(((IUANodeBase)_toTest).IsPropertyVariableType); Assert.IsFalse(_toTest.ModelingRule.HasValue); Assert.IsNotNull(_toTest.NodeIdContext); Assert.AreEqual <string>(_toTest.NodeIdContext.ToString(), "ns=1;i=11"); Assert.IsNotNull(_toTest.UANode); }
public void ExportBrowseNameTest() { UANodeSet _tm = TestData.CreateNodeSetModel(); Mock <IAddressSpaceBuildContext> _asMock = new Mock <IAddressSpaceBuildContext>(); _asMock.Setup(x => x.GetNamespace(0)).Returns <ushort>(x => "tempuri.org"); UANode _nodeFactory = new UAVariable() { NodeId = "ns=1;i=47", BrowseName = "EURange", ParentNodeId = "ns=1;i=43", DataType = "i=884", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "EURange" } } }; UANodeContext _node = new UANodeContext(NodeId.Parse("ns=1;i=47"), _asMock.Object); _node.Update(_nodeFactory, x => Assert.Fail()); XmlQualifiedName _resolvedName = _node.ExportNodeBrowseName(); _asMock.Verify(x => x.GetNamespace(0), Times.Once); Assert.IsNotNull(_resolvedName); Assert.AreEqual <string>("tempuri.org:EURange", _resolvedName.ToString()); }
private UANodeContext NewNode(UANode newNode) { UANodeContext _newNode = new UANodeContext(NodeId.Parse(newNode.NodeId), this); _newNode.Update(newNode, x => { m_References.Add(x.Key, x); }); Add2mNodesDictionary(_newNode); return(_newNode); }
public void UpdateNodeIdTest() { Mock <IAddressSpaceBuildContext> _addressSpaceMock = new Mock <IAddressSpaceBuildContext>(); UANodeContext _toTest = new UANodeContext(NodeId.Parse("ns=1;i=11"), _addressSpaceMock.Object); XML.UANode _node = new UAObject() { NodeId = "ns=1;i=1", BrowseName = "1:NewUAObject", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "New UA Object" } }, References = new Reference[] { new Reference() { ReferenceType = ReferenceTypeIds.HasTypeDefinition.ToString(), Value = ObjectTypeIds.BaseObjectType.ToString() }, new Reference() { ReferenceType = ReferenceTypeIds.Organizes.ToString(), IsForward = false, Value = "i=85" } }, // UAInstance ParentNodeId = string.Empty, // UAObject EventNotifier = 0x01, }; int _registerReferenceCounter = 0; _toTest.Update(_node, x => _registerReferenceCounter++); Assert.AreEqual <int>(2, _registerReferenceCounter); Assert.IsNotNull(_toTest.BrowseName); Assert.AreEqual <QualifiedName>(new QualifiedName("NewUAObject", 1), _toTest.BrowseName); Assert.IsFalse(_toTest.InRecursionChain); Assert.IsFalse(_toTest.IsProperty); Assert.IsFalse(((IUANodeBase)_toTest).IsPropertyVariableType); Assert.IsFalse(_toTest.ModelingRule.HasValue); Assert.IsNotNull(_toTest.NodeIdContext); Assert.AreEqual <string>(_toTest.NodeIdContext.ToString(), "ns=1;i=11"); Assert.IsNotNull(_toTest.UANode); }
private void ImportUANode(UANode node, UAModelContext modelContext, Action <TraceMessage> traceEvent) { try { if (node == null) { m_TraceEvent(TraceMessage.BuildErrorTraceMessage(BuildError.NodeCannotBeNull, "At Importing UANode.")); } NodeId nodeId = modelContext.ImportNodeId(node.NodeId, false, m_TraceEvent); UANodeContext _newNode = null; string nodeIdKey = nodeId.ToString(); if (!m_NodesDictionary.TryGetValue(nodeIdKey, out _newNode)) { _newNode = new UANodeContext(this, modelContext, nodeId); _newNode.Update(node, traceEvent); m_NodesDictionary.Add(nodeIdKey, _newNode); } else { if (_newNode.UANode != null) { m_TraceEvent(TraceMessage.BuildErrorTraceMessage(BuildError.NodeIdDuplicated, String.Format("The {0} is already defined.", node.NodeId.ToString()))); } _newNode.Update(node, traceEvent); } foreach (Reference _rf in node.References) { UAReferenceContext _rs = UAReferenceContext.NewReferenceStub(_rf, this, modelContext, _newNode, m_TraceEvent); if (!m_References.ContainsKey(_rs.Key)) { m_References.Add(_rs.Key, _rs); } } } catch (Exception _ex) { string _msg = String.Format("ImportUANode {1} is interrupted by exception {0}", _ex.Message, node.NodeId); m_TraceEvent(TraceMessage.DiagnosticTraceMessage(_msg)); } }
public void UpdateWithDifferentNodeIdTest() { Mock <IAddressSpaceBuildContext> _asMock = new Mock <IAddressSpaceBuildContext>(); QualifiedName qualifiedName = QualifiedName.Parse("EURange"); IUANodeContext _newNode = new UANodeContext(NodeId.Parse("ns=1;i=11"), _asMock.Object); Assert.AreEqual <string>("ns=1;i=11", _newNode.NodeIdContext.ToString()); UANode _nodeFactory = new UAVariable() { NodeId = "ns=1;i=47", BrowseName = "EURange", ParentNodeId = "ns=1;i=43", DataType = "i=884", DisplayName = new XML.LocalizedText[] { new XML.LocalizedText() { Value = "EURange" } } }; _newNode.Update(_nodeFactory, x => Assert.Fail()); // Update has different NodeId - no change is expected. Assert.AreEqual <string>("ns=1;i=11", _newNode.NodeIdContext.ToString()); Assert.AreEqual <string>("ns=1;i=47", _newNode.UANode.NodeId); }