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(); }
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(); }
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(); }
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(); }
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(); }
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")); }
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(); }