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; }
public void CreateValueAccessorFromInvalidMember() { // Arrange MethodInfo methodInfo = typeof(Entity).GetMethod("PublicMethod"); // Act && Assert Assert.Throws <NotSupportedException>(() => ValueAccessorFactory.Create <Entity>(methodInfo)); }
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); }
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; }
/// <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; }
/// <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; }
public void CreateValueAccessorFromNullParameter() { // Act && Assert Assert.Throws <ArgumentNullException>(() => ValueAccessorFactory.Create <Entity>(null)); }