/// <summary> /// Get the clone from the types derived from this one. /// </summary> /// <returns>An instance of <see cref="UANode" />.</returns> protected override UANode ParentClone() { UADataType _ret = new UADataType() { Definition = this.Definition, Purpose = this.Purpose }; base.CloneUAType(_ret); return(_ret); }
public void NodeClassEnumTest() { UANode _toTest = new UADataType(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UADataType, _toTest.NodeClassEnum); _toTest = new UAObject(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UAObject, _toTest.NodeClassEnum); _toTest = new UAObjectType(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UAObjectType, _toTest.NodeClassEnum); _toTest = new UAReferenceType(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UAReferenceType, _toTest.NodeClassEnum); _toTest = new UAVariable(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UAVariable, _toTest.NodeClassEnum); _toTest = new UAVariableType(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UAVariableType, _toTest.NodeClassEnum); _toTest = new UAView(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UAView, _toTest.NodeClassEnum); _toTest = new UAMethod(); Assert.AreEqual <NodeClassEnum>(NodeClassEnum.UAMethod, _toTest.NodeClassEnum); }
public void RecalculateNodeIdsUADataTypeTest() { UADataType _enumeration = new UADataType() { NodeId = "ns=1;i=11", BrowseName = "1:EnumerationDataType", DisplayName = new LocalizedText[] { new LocalizedText() { Value = "EnumerationDataType" } }, References = new Reference[] { new Reference() { ReferenceType = ReferenceTypeIds.HasProperty.ToString(), Value = "ns=1;i=12", IsForward = true }, new Reference() { ReferenceType = ReferenceTypeIds.HasSubtype.ToString(), Value = "ns=1;i=9", IsForward = false } }, Definition = new DataTypeDefinition() { Name = "EnumerationDataType", Field = new DataTypeField[] { new DataTypeField() { Name = "Field3", Value = 1 }, new DataTypeField() { Name = "Field4", DataType = "ns=1;i=24" } } } }; Mock <IUAModelContext> _uAModelContext = new Mock <IUAModelContext>(); _uAModelContext.Setup <string>(x => x.ImportNodeId(It.IsAny <string>())).Returns <string> (x => { NodeId nodeId = NodeId.Parse(x); if (nodeId.NamespaceIndex == 1) { nodeId.SetNamespaceIndex(10); } return(nodeId.ToString()); }); _uAModelContext.Setup <string>(x => x.ImportQualifiedName(It.IsAny <string>())).Returns <string> (x => { QualifiedName nodeId = QualifiedName.Parse(x); if (nodeId.NamespaceIndex == 1) { nodeId.NamespaceIndex = 10; } return(nodeId.ToString()); }); _enumeration.RecalculateNodeIds(_uAModelContext.Object); Assert.AreEqual <string>("10:EnumerationDataType", _enumeration.BrowseName); Assert.AreEqual <int>(10, NodeId.Parse(_enumeration.NodeId).NamespaceIndex); Assert.AreEqual <int>(10, NodeId.Parse(_enumeration.References[0].Value).NamespaceIndex); Assert.AreEqual <int>(0, NodeId.Parse(_enumeration.References[0].ReferenceType).NamespaceIndex); Assert.AreEqual <int>(10, NodeId.Parse(_enumeration.References[1].Value).NamespaceIndex); Assert.AreEqual <int>(0, NodeId.Parse(_enumeration.References[1].ReferenceType).NamespaceIndex); Assert.AreEqual <string>("i=24", _enumeration.Definition.Field[0].DataType); Assert.AreEqual <string>("ns=10;i=24", _enumeration.Definition.Field[1].DataType); }