Пример #1
0
        private void ReadValueVariant(IConsumerBinding consumerBinding)
        {
            IVariant _ret = m_UADecoder.ReadVariant(this);

            AssertTypeMach(_ret.UATypeInfo, consumerBinding.Encoding);
            consumerBinding.Assign2Repository(_ret.Value);
        }
Пример #2
0
        public void GetConsumerBindingSerializationTest()
        {
            using (AzureGatewaySemanticEventSource log = AzureGatewaySemanticEventSource.Log())
                using (EventListener lisner = new EventListener())
                {
                    //setup log instrumentation
                    List <EventWrittenEventArgs> eventsList = new List <EventWrittenEventArgs>();
                    lisner.EventWritten += (source, entry) => eventsList.Add(entry);
                    Assert.AreEqual <int>(0, eventsList.Count);
                    lisner.EnableEvents(log, EventLevel.LogAlways, EventKeywords.All);

                    PartBindingFactory newInstance    = new PartBindingFactory();
                    string             repositoryName = "RepositoryGroup -tHttp1 -dAzureDeviceId -sAzureScopeId -pAzurePrimaryKey -kAzureSecondaryKey -i2000";
                    IConsumerBinding   binding        = newInstance.GetConsumerBinding(repositoryName, "processValueName", new UATypeInfo(BuiltInType.String));
                    Assert.IsNotNull(binding);
                    binding.Assign2Repository("New value");
                    string dto = newInstance.GetDTO(repositoryName);
                    Debug.Write(dto);
                    Assert.AreEqual <int>(32, dto.Length);
                    Assert.AreEqual <string>("{\"processValueName\":\"New value\"}", dto);
                    Assert.AreEqual <int>(2, eventsList.Count);
                    EventWrittenEventArgs eventArgs = eventsList[0];
                    Assert.AreEqual <string>(nameof(AzureGatewaySemanticEventSource.EnteringMethodBinding), eventArgs.EventName);
                    Assert.AreEqual <string>("Entering method PartBindingFactory.GetConsumerBinding", String.Format(eventArgs.Message, eventArgs.Payload.Select <object, string>(x => x.ToString()).ToArray <string>()));
                    eventArgs = eventsList[1];
                    Assert.AreEqual <string>(nameof(AzureGatewaySemanticEventSource.EnteringMethodBinding), eventArgs.EventName);
                    Assert.AreEqual <string>("Entering method PartBindingFactory.GetDTO", String.Format(eventArgs.Message, eventArgs.Payload.Select <object, string>(x => x.ToString()).ToArray <string>()));
                }
        }
Пример #3
0
 public void UpdateMyValues(Func <int, IConsumerBinding> update, int length)
 {
     for (int i = 0; i < length; i++)
     {
         IConsumerBinding _bind = update(i);
         _bind.Assign2Repository(m_Message[i]);
     }
 }
        public void DataRepositoryTestMethod()
        {
            DataRepository   _rpo = new DataRepository();
            IConsumerBinding _nb  = _rpo.GetConsumerBinding(String.Empty, DataRepository.name, new UATypeInfo(BuiltInType.String));

            Assert.IsNotNull(_nb);
            Assert.IsNotNull(_nb.Encoding);
            _nb.Converter = null;
            Assert.AreEqual <BuiltInType>(BuiltInType.String, _nb.Encoding.BuiltInType);
            string _testValue = "123wjkqjwkqjwjqjwqwjwqkwqjw";

            _nb.Assign2Repository(_testValue);
            Assert.AreEqual <string>(_testValue, _rpo.Buffer);
        }
Пример #5
0
        public void ToStringCLRArrayRankErrorTestMethod()
        {
            ConsumerBindingMonitoredValue <Int32[, , ]> _binding = new ConsumerBindingMonitoredValue <int[, , ]>(new UATypeInfo(BuiltInType.Int32, 0, new int[] { int.MaxValue, int.MaxValue, int.MaxValue }));
            string _name = String.Empty;

            _binding.PropertyChanged += (sender, e) => _name = e.PropertyName;
            Assert.IsNotNull(_binding);
            IConsumerBinding _bindingInterface = _binding;
            Array            _newValue         = new int[, ] {
                { 1, 2 }, { 3, 4 }
            };

            _bindingInterface.Assign2Repository(_newValue);
        }
        public void RecordingRepositoryTestMethod()
        {
            RecordingRepository _rpo = new RecordingRepository();
            IConsumerBinding    _nb  = _rpo.GetConsumerBinding(String.Empty, DataRepository.name, new UATypeInfo(BuiltInType.String));

            Assert.IsNotNull(_nb);
            Assert.IsNotNull(_nb.Encoding);
            _nb.Converter = new DateFormatter();
            Assert.AreEqual <BuiltInType>(BuiltInType.String, _nb.Encoding.BuiltInType);
            DateTime  _dt        = new DateTime(2008, 2, 5);
            Recording _testValue = new Recording("Chris Sells", "Chris Sells Live", _dt);

            _nb.Assign2Repository(_testValue);
            Assert.AreEqual <string>(_dt.ToString(CultureInfo.InvariantCulture), _rpo.Buffer);
        }
Пример #7
0
        public void ToStringCLRArrayTestMethod()
        {
            ConsumerBindingMonitoredValue <Int32[]> _binding = new ConsumerBindingMonitoredValue <int[]>(new UATypeInfo(BuiltInType.Int32, 1));
            string _name = String.Empty;

            _binding.PropertyChanged += (sender, e) => _name = e.PropertyName;
            Assert.IsNotNull(_binding);
            IConsumerBinding _bindingInterface = _binding;
            Array            _newValue         = new int[] { 1234567, 7654321 };

            _bindingInterface.Assign2Repository(_newValue);
            CollectionAssert.AreEqual(_newValue, _binding.Value);
            Assert.AreEqual <string>(@"Array Rank=1 Values [1234567, 7654321]", _binding.ToString());
            Assert.AreEqual <string>("Value", _name);
        }
Пример #8
0
        public void ToStringScalarTestMethod()
        {
            ConsumerBindingMonitoredValue <Int32> _binding = new ConsumerBindingMonitoredValue <int>(new UATypeInfo(BuiltInType.Int32));
            string _name = String.Empty;

            _binding.PropertyChanged += (sender, e) => _name = e.PropertyName;
            Assert.IsNotNull(_binding);
            IConsumerBinding _bindingInterface = _binding;
            const int        _newValue         = 1234567;

            _bindingInterface.Assign2Repository(_newValue);
            Assert.AreEqual <int>(_newValue, _binding.Value);
            Assert.AreEqual <string>(_newValue.ToString(), _binding.ToString());
            Assert.AreEqual <string>("Value", _name);
        }
Пример #9
0
        public void ToStringCLRArrayRank3TestMethod()
        {
            ConsumerBindingMonitoredValue <Int32[, , ]> _binding = new ConsumerBindingMonitoredValue <int[, , ]>(new UATypeInfo(BuiltInType.Int32, 0, new int[] { int.MaxValue, int.MaxValue, int.MaxValue }));
            string _name = String.Empty;

            _binding.PropertyChanged += (sender, e) => _name = e.PropertyName;
            Assert.IsNotNull(_binding);
            IConsumerBinding _bindingInterface = _binding;
            Array            _newValue         = new int[, , ] {
                { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } }
            };

            _bindingInterface.Assign2Repository(_newValue);
            CollectionAssert.AreEqual(_newValue, _binding.Value);
            Assert.AreEqual <string>(@"Array Rank=3 Values [1, 2, 3, 4, 5, 6, 7, 8]", _binding.ToString());
            Assert.AreEqual <string>("Value", _name);
        }
Пример #10
0
        private void ReadValue(IConsumerBinding consumerBinding)
        {
            object _value = null;

            switch (consumerBinding.Encoding.BuiltInType)
            {
            case BuiltInType.Boolean:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadBoolean();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadBoolean, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.SByte:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadSByte();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadSByte, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Byte:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadByte();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadByte, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Int16:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadInt16();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadInt16, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.UInt16:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadUInt16();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadUInt16, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Int32:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadInt32();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadInt32, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.UInt32:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadUInt32();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadUInt32, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Int64:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadInt64();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadInt64, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.UInt64:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadUInt64();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadUInt64, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Float:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadSingle();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadSingle, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Double:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = ReadDouble();
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, ReadDouble, consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.String:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadString(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadString(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.DateTime:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadDateTime(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadDateTime(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Guid:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadGuid(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadGuid(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.ByteString:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    m_UADecoder.ReadByteString(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadByteString(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.XmlElement:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadXmlElement(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadXmlElement(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.NodeId:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadNodeId(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadNodeId(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.ExpandedNodeId:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadExpandedNodeId(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadExpandedNodeId(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.StatusCode:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadStatusCode(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadStatusCode(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.QualifiedName:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadQualifiedName(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadQualifiedName(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.LocalizedText:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadLocalizedText(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadLocalizedText(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.ExtensionObject:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadExtensionObject(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadExtensionObject(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.DataValue:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadDataValue(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadDataValue(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.Variant:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadVariant(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadVariant(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            case BuiltInType.DiagnosticInfo:
                if (consumerBinding.Encoding.ValueRank < 0)
                {
                    _value = m_UADecoder.ReadDiagnosticInfo(this);
                }
                else
                {
                    _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadDiagnosticInfo(this), consumerBinding.Encoding.ValueRank > 1);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException(string.Format("Impossible to convert the type {0}", consumerBinding.Encoding));
            }
            consumerBinding.Assign2Repository(_value);
        }
Пример #11
0
 private void ReadValueVariant(IConsumerBinding consumerBinding)
 {
     IVariant _ret = m_UADecoder.ReadVariant(this);
       AssertTypeMach(_ret.UATypeInfo, consumerBinding.Encoding);
       consumerBinding.Assign2Repository(_ret.Value);
 }
Пример #12
0
 private void ReadValue(IConsumerBinding consumerBinding)
 {
     object _value = null;
       switch (consumerBinding.Encoding.BuiltInType)
       {
     case BuiltInType.Boolean:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadBoolean();
       else
     _value = m_UADecoder.ReadArray(this, ReadBoolean, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.SByte:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadSByte();
       else
     _value = m_UADecoder.ReadArray(this, ReadSByte, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Byte:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadByte();
       else
     _value = m_UADecoder.ReadArray(this, ReadByte, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Int16:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadInt16();
       else
     _value = m_UADecoder.ReadArray(this, ReadInt16, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.UInt16:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadUInt16();
       else
     _value = m_UADecoder.ReadArray(this, ReadUInt16, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Int32:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadInt32();
       else
     _value = m_UADecoder.ReadArray(this, ReadInt32, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.UInt32:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadUInt32();
       else
     _value = m_UADecoder.ReadArray(this, ReadUInt32, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Int64:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadInt64();
       else
     _value = m_UADecoder.ReadArray(this, ReadInt64, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.UInt64:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadUInt64();
       else
     _value = m_UADecoder.ReadArray(this, ReadUInt64, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Float:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadSingle();
       else
     _value = m_UADecoder.ReadArray(this, ReadSingle, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Double:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = ReadDouble();
       else
     _value = m_UADecoder.ReadArray(this, ReadDouble, consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.String:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadString(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadString(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.DateTime:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadDateTime(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadDateTime(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Guid:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadGuid(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadGuid(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.ByteString:
       if (consumerBinding.Encoding.ValueRank < 0)
     m_UADecoder.ReadByteString(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadByteString(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.XmlElement:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadXmlElement(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadXmlElement(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.NodeId:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadNodeId(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadNodeId(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.ExpandedNodeId:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadExpandedNodeId(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadExpandedNodeId(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.StatusCode:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadStatusCode(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadStatusCode(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.QualifiedName:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadQualifiedName(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadQualifiedName(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.LocalizedText:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadLocalizedText(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadLocalizedText(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.ExtensionObject:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadExtensionObject(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadExtensionObject(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.DataValue:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadDataValue(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadDataValue(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.Variant:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadVariant(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadVariant(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     case BuiltInType.DiagnosticInfo:
       if (consumerBinding.Encoding.ValueRank < 0)
     _value = m_UADecoder.ReadDiagnosticInfo(this);
       else
     _value = m_UADecoder.ReadArray(this, () => m_UADecoder.ReadDiagnosticInfo(this), consumerBinding.Encoding.ValueRank > 1);
       break;
     default:
       throw new ArgumentOutOfRangeException(string.Format("Impossible to convert the type {0}", consumerBinding.Encoding));
       }
       consumerBinding.Assign2Repository(_value);
 }