Esempio n. 1
0
        public void HashCodeTest()
        {
            UaTypeMetadata sut  = new UaTypeMetadata("repo", "type");
            UaTypeMetadata sut2 = new UaTypeMetadata("repo", "type");

            Assert.Equal(sut.GetHashCode(), sut2.GetHashCode());
        }
Esempio n. 2
0
        public void ConstructorNullRepositoryNameTest()
        {
            UaTypeMetadata sut = new UaTypeMetadata(null, "type");

            Assert.Equal(string.Empty, sut.RepositoryGroupName);
            Assert.Equal("type", sut.TypeName);
        }
Esempio n. 3
0
        public void ConstructorValidDataTest()
        {
            UaTypeMetadata sut = new UaTypeMetadata("repo", "type");

            Assert.Equal("repo", sut.RepositoryGroupName);
            Assert.Equal("type", sut.TypeName);
        }
        private IConsumerBinding Bind <type>(UaTypeMetadata typeMetadata, UATypeInfo typeInfo)
        {
            ConsumerBindingMonitoredValue <type> binding = new ConsumerBindingMonitoredValue <type>(typeInfo);

            binding.PropertyChanged += (sender, args) =>
            {
                if (_subscriptions.TryGetValue(typeMetadata, out ISubscription subscription))
                {
                    _logger?.LogInfo($"Value updated to {sender.ToString()} for subscription {subscription.UaTypeMetadata.ToString()}");
                    subscription.InvokeValueUpdated();
                }
            };
            ISubscription subscription = new Subscription(
                typeInfo,
                typeMetadata,
                _configuration.GetAliasForRepositoryGroup(typeMetadata.RepositoryGroupName),
                binding
                );

            _subscriptions[typeMetadata] = subscription;
            _consumerViewModel.AddSubscription(subscription);
            return(binding);
        }
Esempio n. 5
0
 public void EqualsTest(UaTypeMetadata type1, UaTypeMetadata type2, bool expectedResult)
 {
     Assert.Equal(expectedResult, type1.Equals(type2));
 }
Esempio n. 6
0
        public void ToStringTest()
        {
            UaTypeMetadata sut = new UaTypeMetadata("repo", "type");

            Assert.Equal("repo.type", sut.ToString());
        }
        public IConsumerBinding GetConsumerBinding(string repositoryGroup, string processValueName, UATypeInfo fieldTypeInfo)
        {
            if (fieldTypeInfo is null)
            {
                throw new ArgumentNullException(nameof(fieldTypeInfo));
            }
            if (fieldTypeInfo.ContainsMultidimensionalArray())
            {
                throw new ValueRankOutOfRangeException(nameof(fieldTypeInfo.ValueRank));
            }
            UaTypeMetadata typeMetadata = new UaTypeMetadata(repositoryGroup, processValueName);

            switch (fieldTypeInfo.BuiltInType)
            {
            case BuiltInType.Boolean:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <bool[]>(typeMetadata, fieldTypeInfo)
                        : Bind <bool>(typeMetadata, fieldTypeInfo));

            case BuiltInType.SByte:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <sbyte[]>(typeMetadata, fieldTypeInfo)
                        : Bind <sbyte>(typeMetadata, fieldTypeInfo));

            case BuiltInType.Byte:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <byte[]>(typeMetadata, fieldTypeInfo)
                        : Bind <byte>(typeMetadata, fieldTypeInfo));

            case BuiltInType.Int16:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <short[]>(typeMetadata, fieldTypeInfo)
                        : Bind <short>(typeMetadata, fieldTypeInfo));

            case BuiltInType.UInt16:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <ushort[]>(typeMetadata, fieldTypeInfo)
                        : Bind <ushort>(typeMetadata, fieldTypeInfo));

            case BuiltInType.Int32:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <int[]>(typeMetadata, fieldTypeInfo)
                        : Bind <int>(typeMetadata, fieldTypeInfo));

            case BuiltInType.UInt32:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <uint[]>(typeMetadata, fieldTypeInfo)
                        : Bind <uint>(typeMetadata, fieldTypeInfo));

            case BuiltInType.Int64:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <long[]>(typeMetadata, fieldTypeInfo)
                        : Bind <long>(typeMetadata, fieldTypeInfo));

            case BuiltInType.UInt64:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <ulong[]>(typeMetadata, fieldTypeInfo)
                        : Bind <ulong>(typeMetadata, fieldTypeInfo));

            case BuiltInType.Float:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <float[]>(typeMetadata, fieldTypeInfo)
                        : Bind <float>(typeMetadata, fieldTypeInfo));

            case BuiltInType.Double:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <double[]>(typeMetadata, fieldTypeInfo)
                        : Bind <double>(typeMetadata, fieldTypeInfo));

            case BuiltInType.String:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <string[]>(typeMetadata, fieldTypeInfo)
                        : Bind <string>(typeMetadata, fieldTypeInfo));

            case BuiltInType.DateTime:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <DateTime?[]>(typeMetadata, fieldTypeInfo)
                        : Bind <DateTime?>(typeMetadata, fieldTypeInfo));

            case BuiltInType.Guid:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <Guid?[]>(typeMetadata, fieldTypeInfo)
                        : Bind <Guid?>(typeMetadata, fieldTypeInfo));

            case BuiltInType.ByteString:
                return(fieldTypeInfo.ContainsArray()
                        ? Bind <byte[][]>(typeMetadata, fieldTypeInfo)
                        : Bind <byte[]>(typeMetadata, fieldTypeInfo));

            default:
                throw new UnsupportedTypeException(fieldTypeInfo.BuiltInType.ToString());
            }
        }