Exemplo n.º 1
0
        public void MergeSchemaAndRemoveTypeAOnAllSchemas()
        {
            // arrange
            DocumentNode schema_a =
                Utf8GraphQLParser.Parse(
                    "type A { b1: String } type B { c: String }");
            DocumentNode schema_b =
                Utf8GraphQLParser.Parse(
                    "type A { b2: String } type B { c: String }");

            // act
            DocumentNode schema = SchemaMerger.New()
                                  .AddSchema("A", schema_a)
                                  .AddSchema("B", schema_b)
                                  .IgnoreType("A")
                                  .Merge();

            // assert
            schema.Print().MatchSnapshot();
        }
Exemplo n.º 2
0
        public void MergeSchemaAndRenameTypeAtoXyzOnSchemaA()
        {
            // arrange
            DocumentNode schema_a =
                Utf8GraphQLParser.Parse(
                    "type A { b1: String b2: String } type B { c: String }");
            DocumentNode schema_b =
                Utf8GraphQLParser.Parse(
                    "type A { b1: String b3: String } type B { c: String }");

            // act
            DocumentNode schema = SchemaMerger.New()
                                  .AddSchema("A", schema_a)
                                  .AddSchema("B", schema_b)
                                  .RenameType("A", "Xyz", "A")
                                  .Merge();

            // assert
            schema.Print().MatchSnapshot();
        }
Exemplo n.º 3
0
        public void MergeDemoSchemaAndRemoveRootTypesOnSchemaA()
        {
            // arrange
            DocumentNode schema_a =
                Utf8GraphQLParser.Parse(
                    FileResource.Open("Contract.graphql"));
            DocumentNode schema_b =
                Utf8GraphQLParser.Parse(
                    FileResource.Open("Customer.graphql"));

            // act
            DocumentNode schema = SchemaMerger.New()
                                  .AddSchema("A", schema_a)
                                  .AddSchema("B", schema_b)
                                  .IgnoreRootTypes("A")
                                  .Merge();

            // assert
            SchemaSyntaxSerializer.Serialize(schema).MatchSnapshot();
        }
Exemplo n.º 4
0
        public void MergeSchemaAndRenameFieldB1toB11OnSchemaA()
        {
            // arrange
            DocumentNode schema_a =
                Utf8GraphQLParser.Parse(
                    "type A { b1: String b2: String } type B { c: String }");
            DocumentNode schema_b =
                Utf8GraphQLParser.Parse(
                    "type A { b1: String b3: String } type B { c: String }");

            // act
            DocumentNode schema = SchemaMerger.New()
                                  .AddSchema("A", schema_a)
                                  .AddSchema("B", schema_b)
                                  .RenameField(new FieldReference("A", "b1"), "b11", "A")
                                  .Merge();

            // assert
            SchemaSyntaxSerializer.Serialize(schema).MatchSnapshot();
        }
Exemplo n.º 5
0
        public void MergeDirectivesWithCustomRule()
        {
            // arrange
            DocumentNode schema_a =
                Utf8GraphQLParser.Parse("directive @foo on FIELD");
            DocumentNode schema_b =
                Utf8GraphQLParser.Parse("directive @foo(a: String) on FIELD");

            // act
            DocumentNode a = SchemaMerger.New()
                             .AddSchema("A", schema_a)
                             .AddSchema("B", schema_b)
                             .AddDirectiveMergeRule(next => (context, directives) =>
            {
                context.AddDirective(
                    directives.First(t =>
                                     t.Definition.Arguments.Any()).Definition);
            })
                             .Merge();

            // assert
            SchemaSyntaxSerializer.Serialize(a).MatchSnapshot();
        }
Exemplo n.º 6
0
        public void LastFieldRenameWins()
        {
            // arrange
            DocumentNode schema_a =
                Utf8GraphQLParser.Parse(
                    "type A { b1: B } " +
                    "type B implements D { c: String } " +
                    "type C implements D { c: String } " +
                    "interface D { c: String }");

            DocumentNode schema_b =
                Utf8GraphQLParser.Parse(
                    "type B { b1: String b3: String } type C { c: String }");

            // act
            DocumentNode a = SchemaMerger.New()
                             .AddSchema("A", schema_a)
                             .AddSchema("B", schema_b)
                             .RenameField("A", new FieldReference("B", "c"), "c123")
                             .RenameField("A", new FieldReference("C", "c"), "c456")
                             .RenameField("A", new FieldReference("D", "c"), "c789")
                             .Merge();

            DocumentNode b = SchemaMerger.New()
                             .AddSchema("A", schema_a)
                             .AddSchema("B", schema_b)
                             .RenameField("A", new FieldReference("B", "c"), "c123")
                             .RenameField("A", new FieldReference("D", "c"), "c789")
                             .RenameField("A", new FieldReference("C", "c"), "c456")
                             .Merge();

            // assert
            SchemaSyntaxSerializer.Serialize(a).MatchSnapshot(
                SnapshotNameExtension.Create("A"));
            SchemaSyntaxSerializer.Serialize(b).MatchSnapshot(
                SnapshotNameExtension.Create("B"));
        }
Exemplo n.º 7
0
        public void RenameObjectField()
        {
            // arrange
            DocumentNode schema_a =
                Utf8GraphQLParser.Parse(
                    "type A { b1: B } " +
                    "type B { c: String } " +
                    "type C implements D { c: String } " +
                    "interface D { c: String }");

            DocumentNode schema_b =
                Utf8GraphQLParser.Parse(
                    "type B { b1: String b3: String } type C { c: String }");

            // act
            DocumentNode a = SchemaMerger.New()
                             .AddSchema("A", schema_a)
                             .AddSchema("B", schema_b)
                             .RenameField("A", new FieldReference("B", "c"), "c123")
                             .Merge();

            // assert
            SchemaSyntaxSerializer.Serialize(a).MatchSnapshot();
        }