protected override void OnCompleteField( ITypeCompletionContext context, InputFieldDefinition definition) { base.OnCompleteField(context, definition); if (Member?.DeclaringType is not null) { RuntimeType = context.TypeInspector.GetReturnType(Member, ignoreAttributes: true); } }
protected override void OnCompleteField( ITypeCompletionContext context, ITypeSystemMember declaringMember, InputFieldDefinition definition) { base.OnCompleteField(context, declaringMember, definition); if (Member?.DeclaringType is not null) { RuntimeType = context.TypeInspector.GetReturnType(Member); } }
private static InputFieldDefinition CreateDefinition( IDescriptorContext context, InputObjectType filterType) { InputFieldDefinition definition = InputFieldDescriptor .New(context, "AND") .CreateDefinition(); definition.Type = new SchemaTypeReference( new ListType(new NonNullType(filterType))); return(definition); }
protected override void OnCompleteField( ITypeCompletionContext context, ITypeSystemMember declaringMember, InputFieldDefinition definition) { definition.Type = TypeReference.Parse( $"[{context.Type.Name}!]", TypeContext.Input, context.Type.Scope); base.OnCompleteField(context, declaringMember, definition); }
protected override void OnCompleteField( ITypeCompletionContext context, InputFieldDefinition definition) { definition.Type = TypeReference.Create( new ListTypeNode( new NonNullTypeNode( new NamedTypeNode(context.Type.Name))), TypeContext.Input, context.Type.Scope); base.OnCompleteField(context, definition); }
public void InferTypeFromProperty() { // act var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // assert InputFieldDefinition description = descriptor.CreateDefinition(); Assert.Equal(typeof(List <Argument>), Assert.IsType <ClrTypeReference>(description.Type).Type); Assert.Equal("arguments", description.Name); }
public void OverwriteName2() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act descriptor.Name("args"); // assert InputFieldDefinition description = descriptor.CreateDefinition(); Assert.Equal("args", description.Name); }
public void OverwriteName() { // arrange var descriptor = InputFieldDescriptor.New( Context, "field1234"); // act descriptor.Name("args"); // assert InputFieldDefinition description = descriptor.CreateDefinition(); Assert.Equal("args", description.Name); }
public void SetDescription() { // arrange string expectedDescription = Guid.NewGuid().ToString(); var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act descriptor.Description(expectedDescription); // assert InputFieldDefinition description = descriptor.CreateDefinition(); Assert.Equal(expectedDescription, description.Description); }
public void SetSchemaType() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act descriptor.Type(new StringType()); // assert InputFieldDefinition description = descriptor.CreateDefinition(); ITypeReference typeRef = description.Type; Assert.IsType <StringType>( Assert.IsType <SchemaTypeReference>(typeRef).Type); }
public void SetDefaultValueAndInferType() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act descriptor.DefaultValue("string"); // assert InputFieldDefinition description = descriptor.CreateDefinition(); Assert.Equal(typeof(string), Assert.IsType <ClrTypeReference>(description.Type).Type); Assert.Equal("string", description.NativeDefaultValue); }
public void OverwriteDefaultValueLiteralWithNativeDefaultValue() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act descriptor .DefaultValue(new StringValueNode("123")) .DefaultValue("string"); // asser InputFieldDefinition description = descriptor.CreateDefinition(); Assert.Null(description.DefaultValue); Assert.Equal("string", description.NativeDefaultValue); }
public void SetNonGenericType() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act descriptor.Type(typeof(StringType)); // assert InputFieldDefinition description = descriptor.CreateDefinition(); ITypeReference typeRef = description.Type; Assert.Equal( typeof(StringType), Assert.IsType <ClrTypeReference>(typeRef).Type); }
public void SettingTheNativeDefaultValueToNullCreatesNullLiteral() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act ((IInputFieldDescriptor)descriptor) .DefaultValue(new StringValueNode("123")) .DefaultValue("string") .DefaultValue(null); // assert InputFieldDefinition description = descriptor.CreateDefinition(); Assert.IsType <NullValueNode>(description.DefaultValue); Assert.Null(description.NativeDefaultValue); }
public void SchemaTypesOverwriteDotNetTypes() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act descriptor .Type <NativeType <IReadOnlyDictionary <string, string> > >() .Type <ListType <StringType> >(); // assert InputFieldDefinition description = descriptor.CreateDefinition(); ITypeReference typeRef = description.Type; Assert.Equal(typeof(ListType <StringType>), Assert.IsType <ClrTypeReference>(typeRef).Type); }
public void OverwriteNativeDefaultValueWithDefaultValueLiteral() { // arrange var descriptor = InputFieldDescriptor.New( Context, typeof(ObjectField).GetProperty("Arguments")); // act ((IInputFieldDescriptor)descriptor) .DefaultValue("string") .DefaultValue(new StringValueNode("123")); // assert InputFieldDefinition description = descriptor.CreateDefinition(); Assert.IsType <StringValueNode>(description.DefaultValue); Assert.Equal("123", ((StringValueNode)description.DefaultValue).Value); Assert.Null(description.NativeDefaultValue); }
private static void DeclareFields( InputObjectTypeDefinition parent, IReadOnlyCollection <InputValueDefinitionNode> fields, bool preserveSyntaxNodes) { foreach (InputValueDefinitionNode inputField in fields) { var inputFieldDefinition = new InputFieldDefinition( inputField.Name.Value, inputField.Description?.Value, TypeReference.Create(inputField.Type), inputField.DefaultValue); inputFieldDefinition.BindTo = inputField.GetBindingValue(); if (preserveSyntaxNodes) { inputFieldDefinition.SyntaxNode = inputField; } SdlToTypeSystemHelper.AddDirectives(inputFieldDefinition, inputField); parent.Fields.Add(inputFieldDefinition); } }
static InputField CreateField(InputFieldDefinition fieldDef, int index) => new(fieldDef, index);