public void CreateObjectType() { // arrange var scalarType = new StringType(); var parser = new Parser(); DocumentNode document = parser.Parse( "type Simple { a: String b: [String] }"); ObjectTypeDefinitionNode objectTypeDefinition = document .Definitions.OfType <ObjectTypeDefinitionNode>().First(); var resolverBinding = new DelegateResolverBinding( "Simple", "a", (c, r) => "hello"); var serviceManager = new ServiceManager(); var schemaContext = new SchemaContext(serviceManager); schemaContext.Types.RegisterType(scalarType); schemaContext.Resolvers.RegisterResolver(resolverBinding); // act var factory = new ObjectTypeFactory(); ObjectType objectType = factory.Create(objectTypeDefinition); schemaContext.Types.RegisterType(objectType); var initializationContext = new TypeInitializationContext( schemaContext, error => { }, objectType, false); ((INeedsInitialization)objectType) .RegisterDependencies(initializationContext); schemaContext.CompleteTypes(); // assert Assert.Equal("Simple", objectType.Name); Assert.Equal(3, objectType.Fields.Count); Assert.True(objectType.Fields.ContainsField("a")); Assert.True(objectType.Fields.ContainsField("b")); Assert.False(objectType.Fields["a"].Type.IsNonNullType()); Assert.False(objectType.Fields["a"].Type.IsListType()); Assert.True(objectType.Fields["a"].Type.IsScalarType()); Assert.Equal("String", objectType.Fields["a"].Type.TypeName()); Assert.False(objectType.Fields["b"].Type.IsNonNullType()); Assert.True(objectType.Fields["b"].Type.IsListType()); Assert.False(objectType.Fields["b"].Type.IsScalarType()); Assert.Equal("String", objectType.Fields["b"].Type.TypeName()); Assert.Equal("hello", (objectType.Fields["a"] .Resolver(null, CancellationToken.None))); }
public void CreateObjectType() { // arrange ObjectTypeDefinitionNode typeDefinition = CreateTypeDefinition <ObjectTypeDefinitionNode>(@" type Simple { a: String b: [String] }"); var resolverBinding = new DelegateResolverBinding( "Simple", "a", (c, r) => "hello"); // act var factory = new ObjectTypeFactory(); ObjectType type = factory.Create(typeDefinition); CompleteType(type, s => s.Resolvers.RegisterResolver(resolverBinding)); // assert Assert.Equal("Simple", type.Name); Assert.Equal(3, type.Fields.Count); Assert.True(type.Fields.ContainsField("a")); Assert.False(type.Fields["a"].Type.IsNonNullType()); Assert.False(type.Fields["a"].Type.IsListType()); Assert.True(type.Fields["a"].Type.IsScalarType()); Assert.Equal("String", type.Fields["a"].Type.TypeName()); Assert.True(type.Fields.ContainsField("b")); Assert.False(type.Fields["b"].Type.IsNonNullType()); Assert.True(type.Fields["b"].Type.IsListType()); Assert.False(type.Fields["b"].Type.IsScalarType()); Assert.Equal("String", type.Fields["b"].Type.TypeName()); Assert.Equal("hello", (type.Fields["a"] .Resolver(null, CancellationToken.None))); }