public void can_create_custom_directive_for_all_locations_graph_type_first()
    {
        var schema = new Schema();

        schema.ApplyDirective("schema");
        schema.HasAppliedDirectives().ShouldBeTrue();
        schema.GetAppliedDirectives().Count.ShouldBe(1);

        var objectType = new ObjectGraphType();

        objectType.ApplyDirective("type");
        objectType.HasAppliedDirectives().ShouldBeTrue();
        objectType.GetAppliedDirectives().Count.ShouldBe(1);

        var field = objectType.Field <StringGraphType>("test");

        field.ApplyDirective("field");
        field.HasAppliedDirectives().ShouldBeTrue();
        field.GetAppliedDirectives().Count.ShouldBe(1);

        var interfaceType = new InterfaceGraphType();

        interfaceType.ApplyDirective("interface");
        interfaceType.HasAppliedDirectives().ShouldBeTrue();
        interfaceType.GetAppliedDirectives().Count.ShouldBe(1);

        var unionType = new UnionGraphType();

        unionType.ApplyDirective("union");
        unionType.HasAppliedDirectives().ShouldBeTrue();
        unionType.GetAppliedDirectives().Count.ShouldBe(1);

        var arg = new QueryArgument(new StringGraphType());

        arg.ApplyDirective("arg");
        arg.HasAppliedDirectives().ShouldBeTrue();
        arg.GetAppliedDirectives().Count.ShouldBe(1);

        var enumType = new EnumerationGraphType();

        enumType.ApplyDirective("enumType");
        enumType.HasAppliedDirectives().ShouldBeTrue();
        enumType.GetAppliedDirectives().Count.ShouldBe(1);

        var enumValue = new EnumValueDefinition("UNUSED", null);

        enumValue.ApplyDirective("enumValue");
        enumValue.HasAppliedDirectives().ShouldBeTrue();
        enumValue.GetAppliedDirectives().Count.ShouldBe(1);

        var inputType = new InputObjectGraphType();

        inputType.ApplyDirective("inputType");
        inputType.HasAppliedDirectives().ShouldBeTrue();
        inputType.GetAppliedDirectives().Count.ShouldBe(1);

        var input = inputType.Field <StringGraphType>("test");

        input.ApplyDirective("inputField");
        input.HasAppliedDirectives().ShouldBeTrue();
        input.GetAppliedDirectives().Count.ShouldBe(1);

        var scalarType = new BigIntGraphType();

        scalarType.ApplyDirective("scalar");
        scalarType.HasAppliedDirectives().ShouldBeTrue();
        scalarType.GetAppliedDirectives().Count.ShouldBe(1);
    }