Esempio n. 1
0
        public Field(
            string name,
            string description,
            string deprecationReason,
            bool isNullable,
            bool isSingular,
            bool isItemNullable,
            BoundGraphQLTypeAdapter graphQLType,
            IDictionary <string, BoundGraphQLTypeAdapter> arguments,
            ValueAccessorFactory valueAccessorFactory)
        {
            Check.IsNotNullOrWhiteSpace(name, nameof(name));
            Check.IsNotNull(graphQLType, nameof(graphQLType));
            Check.IsNotNull(arguments, nameof(arguments));
            Check.IsNotNull(valueAccessorFactory, nameof(valueAccessorFactory));

            Name        = name;
            Description = description;

            IsDeprecated      = deprecationReason != null;
            DeprecationReason = deprecationReason;

            IsNullable     = isNullable;
            IsSingular     = isSingular;
            IsItemNullable = isItemNullable;

            GraphQLType = graphQLType;
            Arguments   = arguments;

            this.valueAccessorFactory = valueAccessorFactory;
        }
Esempio n. 2
0
        public void CreateValueAccessorFromInvalidMember()
        {
            // Arrange
            MethodInfo methodInfo = typeof(Entity).GetMethod("PublicMethod");

            // Act && Assert
            Assert.Throws <NotSupportedException>(() => ValueAccessorFactory.Create <Entity>(methodInfo));
        }
Esempio n. 3
0
        public void CreateValueAccessorFromFieldAccessor()
        {
            // Arrange
            FieldInfo fieldInfo = typeof(Entity).GetField("PublicField");

            // Act
            IValueAccessor <Entity> valueAccessor = ValueAccessorFactory.Create <Entity>(fieldInfo);

            // Assert
            Assert.NotNull(valueAccessor);
            Assert.Equal(valueAccessor.Name, fieldInfo.Name);
            Assert.Equal(valueAccessor.Type, fieldInfo.FieldType);
        }
Esempio n. 4
0
        public void CreateValueAccessorFromPropertyInfo()
        {
            // Arrange
            PropertyInfo propertyInfo = typeof(Entity).GetProperty("PublicProperty");

            // Act
            IValueAccessor <Entity> valueAccessor = ValueAccessorFactory.Create <Entity>(propertyInfo);

            // Assert
            Assert.NotNull(valueAccessor);
            Assert.Equal(valueAccessor.Name, propertyInfo.Name);
            Assert.Equal(valueAccessor.Type, propertyInfo.PropertyType);
        }
        /// <summary>
        ///     Constructor.
        /// </summary>
        /// <param name="member">Entity member.</param>
        internal TimestampProperty(MemberInfo member)
        {
            if (member == null)
            {
                throw new ArgumentNullException(nameof(member));
            }

            IValueAccessor <T> accessor = ValueAccessorFactory.Create <T>(member);

            if (!_timestampTypes.Contains(accessor.Type))
            {
                throw new ArgumentOutOfRangeException(nameof(member), Resources.PropertyTimestampInvalidType);
            }

            _setValue = accessor.SetValue;
        }
Esempio n. 6
0
        /// <summary>
        ///     Constructor.
        /// </summary>
        /// <param name="member">Entity member.</param>
        internal RowKeyProperty(MemberInfo member)
        {
            if (member == null)
            {
                throw new ArgumentNullException("member");
            }

            IValueAccessor <T> accessor = ValueAccessorFactory.Create <T>(member);

            if (accessor.Type != _stringType)
            {
                throw new ArgumentOutOfRangeException(Resources.PropertyRowKeyInvalidType);
            }

            _getValue = accessor.GetValue;
            _setValue = accessor.SetValue;
        }
Esempio n. 7
0
        /// <summary>
        ///     Constructor.
        /// </summary>
        /// <param name="member">Entity member.</param>
        /// <param name="name">Member name.</param>
        internal RegularProperty(MemberInfo member, string name)
        {
            if (member == null)
            {
                throw new ArgumentNullException(nameof(member));
            }

            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            IValueAccessor <T> accessor = ValueAccessorFactory.Create <T>(member);

            _getValue   = accessor.GetValue;
            _setValue   = accessor.SetValue;
            _memberName = name;
        }
Esempio n. 8
0
 public void CreateValueAccessorFromNullParameter()
 {
     // Act && Assert
     Assert.Throws <ArgumentNullException>(() => ValueAccessorFactory.Create <Entity>(null));
 }