Exemple #1
0
        public void AddSchema()
        {
            // arrange
            StitchingBuilder stitchingBuilder = StitchingBuilder.New();

            DocumentNode schema_a = Parser.Default.Parse(
                "type A { b: String }");
            DocumentNode schema_b = Parser.Default.Parse(
                "type B { c: String }");

            // act
            stitchingBuilder.AddSchema("a", s => schema_a)
            .AddSchema("b", s => schema_b);

            // assert
            var services = new ServiceCollection();

            stitchingBuilder.Populate(services);

            DocumentNode schema = services.BuildServiceProvider()
                                  .GetRequiredService <StitchingBuilder.StitchingFactory>()
                                  .MergedSchema;

            SchemaSyntaxSerializer.Serialize(schema).MatchSnapshot();
        }
Exemple #2
0
        public void AddSchema_LoadSchemaIsNull_ArgumentNullException()
        {
            // arrange
            StitchingBuilder stitchingBuilder = StitchingBuilder.New();
            NameString       schemName        = "abc";

            // act
            Action action = () => stitchingBuilder.AddSchema(
                schemName, (LoadSchemaDocument)null);

            // assert
            Assert.Equal("loadSchema",
                         Assert.Throws <ArgumentNullException>(action).ParamName);
        }
Exemple #3
0
        public void AddSchema_SchemaNameIsEmpty_ArgumentNullException()
        {
            // arrange
            StitchingBuilder stitchingBuilder = StitchingBuilder.New();
            NameString       schemName        = "abc";

            // act
            Action action = () => stitchingBuilder.AddSchema(
                null, sp => new DocumentNode(new List <IDefinitionNode>()));

            // assert
            Assert.Equal("name",
                         Assert.Throws <ArgumentException>(action).ParamName);
        }
Exemple #4
0
        public void AddSchema_SchemaAlreadyRegistered_2_ArgumentNullException()
        {
            // arrange
            StitchingBuilder stitchingBuilder = StitchingBuilder.New();
            NameString       schemName        = "abc";

            stitchingBuilder.AddQueryExecutor(
                schemName,
                sp => default(IQueryExecutor));

            // act
            Action action = () => stitchingBuilder.AddSchema(
                schemName,
                sp => new DocumentNode(new List <IDefinitionNode>()));

            // assert
            Assert.Equal("name",
                         Assert.Throws <ArgumentException>(action).ParamName);
        }