public async Task EntityUnion_has_possible_type_with_key_directive()
    {
        /* Given */
        var builder = new SchemaBuilder()
                      .Add(@"
                    type Person @key(fields: ""id"") {
                        id: ID!
                    }");

        /* When */
        var schema = await builder.BuildSubgraph(new FederatedSchemaBuildOptions());

        var entityUnion = schema.GetRequiredNamedType <UnionDefinition>("_Entity");
        var entities    = schema.GetPossibleTypes(entityUnion);

        /* Then */
        Assert.Single(entities, obj => obj.Name == "Person");
    }
    public async Task EntityUnion_does_not_contain_object_without_key_directive()
    {
        /* Given */
        var builder = new SchemaBuilder()
                      .Add(@"
                    type Person @key(fields: ""id"") {
                        id: ID!
                    }
                    type Address {
                        street: String
                    }");

        /* When */
        var schema = await builder.BuildSubgraph(new FederatedSchemaBuildOptions());

        var entityUnion = schema.GetRequiredNamedType <UnionDefinition>("_Entity");
        var entities    = schema.GetPossibleTypes(entityUnion)
                          .ToList();

        /* Then */
        Assert.Single(entities);
    }