Esempio n. 1
0
        public void CalculateNodeReferencesValidatorIsNullTest()
        {
            Mock <IAddressSpaceBuildContext> _addressSpaceMock = new Mock <IAddressSpaceBuildContext>();
            Mock <INodeFactory> _mockNodeFactory = new Mock <INodeFactory>();
            IUANodeBase         _first           = new UANodeContext(NodeId.Parse("ns=1;i=11"), _addressSpaceMock.Object);

            _first.CalculateNodeReferences(_mockNodeFactory.Object, null);
        }
Esempio n. 2
0
        public void CalculateNodeReferencesNullFactoryTest()
        {
            Mock <IAddressSpaceBuildContext> _addressSpaceMock = new Mock <IAddressSpaceBuildContext>();
            Mock <IValidator> _validatorMoc = new Mock <IValidator>();
            IUANodeBase       _first        = new UANodeContext(NodeId.Parse("ns=1;i=11"), _addressSpaceMock.Object);

            _first.CalculateNodeReferences(null, _validatorMoc.Object);
        }
Esempio n. 3
0
        public void CalculateNodeReferencesNullUANodeTest()
        {
            Mock <IAddressSpaceBuildContext> _addressSpaceMock = new Mock <IAddressSpaceBuildContext>();

            _addressSpaceMock.Setup(x => x.GetMyReferences(It.IsAny <IUANodeBase>())).Returns(new List <UAReferenceContext>());
            Mock <INodeFactory> _mockNodeFactory = new Mock <INodeFactory>();
            Mock <IValidator>   _validatorMoc    = new Mock <IValidator>();

            _validatorMoc.Setup(x => x.ValidateExportNode(It.IsAny <IUANodeBase>(), _mockNodeFactory.Object, It.IsAny <UAReferenceContext>()));
            IUANodeBase _node = new UANodeContext(NodeId.Parse("ns=1;i=11"), _addressSpaceMock.Object);

            _node.CalculateNodeReferences(_mockNodeFactory.Object, _validatorMoc.Object);
            _addressSpaceMock.Verify(x => x.GetMyReferences(It.IsAny <IUANodeBase>()), Times.Once);
            _validatorMoc.Verify(x => x.ValidateExportNode(It.IsAny <IUANodeBase>(), _mockNodeFactory.Object, It.IsAny <UAReferenceContext>()), Times.Never);
        }
Esempio n. 4
0
        private static FactoryType CreateNode <FactoryType, NodeSetType>
        (
            Func <FactoryType> createNode,
            UANodeContext nodeContext,
            Action <FactoryType, NodeSetType> updateNode,
            Action <FactoryType, NodeSetType, UANodeContext, Action <TraceMessage> > updateBase,
            Action <TraceMessage> traceEvent
        )
            where FactoryType : INodeFactory
            where NodeSetType : UANode
        {
            FactoryType _nodeFactory = createNode();

            nodeContext.CalculateNodeReferences(_nodeFactory, traceEvent);
            NodeSetType      _nodeSet    = (NodeSetType)nodeContext.UANode;
            XmlQualifiedName _browseName = nodeContext.ExportNodeBrowseName();
            string           _symbolicName;

            if (String.IsNullOrEmpty(_nodeSet.SymbolicName))
            {
                _symbolicName = _browseName.Name.ValidateIdentifier(traceEvent);
            }
            else
            {
                _symbolicName = _nodeSet.SymbolicName.ValidateIdentifier(traceEvent);
            }
            _nodeFactory.BrowseName = _browseName.Name.ExportString(_symbolicName);
            _nodeSet.Description.ExportLocalizedTextArray(_nodeFactory.AddDescription);
            _nodeSet.DisplayName.Truncate(512, traceEvent).ExportLocalizedTextArray(_nodeFactory.AddDisplayName);
            _nodeFactory.SymbolicName = new XmlQualifiedName(_symbolicName, _browseName.Namespace);
            Action <UInt32, string> _doReport = (x, y) =>
            {
                traceEvent(TraceMessage.BuildErrorTraceMessage(BuildError.WrongWriteMaskValue, String.Format("The current value is {0:x} of the node type {1}.", x, y)));
            };

            _nodeFactory.WriteAccess = _nodeSet is UAVariable?_nodeSet.WriteMask.Validate(0x200000, x => _doReport(x, _nodeSet.GetType().Name)) : _nodeSet.WriteMask.Validate(0x400000, x => _doReport(x, _nodeSet.GetType().Name));

            updateBase(_nodeFactory, _nodeSet, nodeContext, traceEvent);
            updateNode(_nodeFactory, _nodeSet);
            return(_nodeFactory);
        }