public async Task WorksWithNullSource() { var graphType = new TestFieldSupport <NullSourceTest>(); var context = new ResolveFieldContext(); (await graphType.Fields.Find("Example1") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe(true); (await graphType.Fields.Find("Example2") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe("test"); (await graphType.Fields.Find("Example3") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe(3); }
public async Task ThrowsWhenSourceNull_Struct() { var graphType = new TestFieldSupport <NullSourceStructFailureTest>(); var context = new ResolveFieldContext(); (await Should.ThrowAsync <NullReferenceException>(async() => await graphType.Fields.Find("Example1") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ConfigureAwait(false)) .Message.ShouldBe("IResolveFieldContext.Source is null; please use static methods when using an AutoRegisteringObjectGraphType as a root graph type or provide a root value."); (await Should.ThrowAsync <NullReferenceException>(async() => await graphType.Fields.Find("Example2") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ConfigureAwait(false)) .Message.ShouldBe("IResolveFieldContext.Source is null; please use static methods when using an AutoRegisteringObjectGraphType as a root graph type or provide a root value."); (await Should.ThrowAsync <NullReferenceException>(async() => await graphType.Fields.Find("Example3") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ConfigureAwait(false)) .Message.ShouldBe("IResolveFieldContext.Source is null; please use static methods when using an AutoRegisteringObjectGraphType as a root graph type or provide a root value."); }
public async Task WorksWithNoDefaultConstructor() { var graphType = new TestFieldSupport <NoDefaultConstructorTest>(); var context = new ResolveFieldContext { Source = new NoDefaultConstructorTest(true) }; (await graphType.Fields.Find("Example1") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe(true); (await graphType.Fields.Find("Example2") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe("test"); (await graphType.Fields.Find("Example3") !.Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe(1); }
public async Task FieldResolversWork(string fieldName, object expected) { var graph = new TestFieldSupport <TestClass>(); var field = graph.Fields.Find(fieldName).ShouldNotBeNull(); var resolver = field.Resolver.ShouldNotBeNull(); var obj = new TestClass(); var actual = await resolver.ResolveAsync(new ResolveFieldContext { Source = obj, FieldDefinition = new FieldType { Name = fieldName }, }).ConfigureAwait(false); actual.ShouldBe(expected); }
public void DoesParse() { var dic = new Dictionary <string, object?>() { { "Field1", 11 }, { "Field3", 13 }, { "Field5", 15 }, { "Field6AltName", 16 }, }; var graph = new TestFieldSupport <TestClass>(); var actual = graph.ParseDictionary(dic).ShouldBeOfType <TestClass>(); actual.Field1.ShouldBe(11); actual.Field3Value.ShouldBe(13); actual.Field5.ShouldBe(15); actual.Field6.ShouldBe(16); }
public async Task TestStruct() { var graphType = new TestFieldSupport <TestStructModel>(); graphType.Name.ShouldBe("Test"); graphType.Fields.Count.ShouldBe(3); var context = new ResolveFieldContext { Source = new TestStructModel(), Arguments = new Dictionary <string, ArgumentValue> { { "prefix", new ArgumentValue("test", ArgumentSource.Literal) }, }, }; (await graphType.Fields.Find("Id").ShouldNotBeNull().Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe(1); graphType.Fields.Find("Id") !.Type.ShouldBe(typeof(NonNullGraphType <IdGraphType>)); (await graphType.Fields.Find("Name").ShouldNotBeNull().Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe("Example"); (await graphType.Fields.Find("IdAndName").ShouldNotBeNull().Resolver !.ResolveAsync(context).ConfigureAwait(false)).ShouldBe("testExample1"); }
public void CanAddFieldInfos() { var graph = new TestFieldSupport <TestClass>(); graph.Fields.Find("Field5").ShouldNotBeNull(); }