Beispiel #1
0
    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);
    }
Beispiel #2
0
    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.");
    }
Beispiel #3
0
    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);
    }
Beispiel #4
0
    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);
    }
Beispiel #5
0
    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);
    }
Beispiel #6
0
    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");
    }
Beispiel #7
0
    public void CanAddFieldInfos()
    {
        var graph = new TestFieldSupport <TestClass>();

        graph.Fields.Find("Field5").ShouldNotBeNull();
    }