示例#1
0
        public void AddExtensionsFromFile()
        {
            // arrange
            var builder = new MockStitchingBuilder();

            // act
            builder.AddExtensionsFromFile(
                IOPath.Combine("__resources__", "Contract.graphql"))
            .AddExtensionsFromFile(
                IOPath.Combine("__resources__", "Customer.graphql"));

            // assert
            var services = new EmptyServiceProvider();
            var merger   = new SchemaMerger();

            var list = new List <string>();

            foreach (LoadSchemaDocument item in builder.Extensions)
            {
                list.Add(SchemaSyntaxSerializer.Serialize(
                             item.Invoke(services)));
            }

            list.MatchSnapshot();
        }
示例#2
0
        public void AddSchemaFromFile()
        {
            // arrange
            IHttpClientFactory clientFactory = CreateRemoteSchemas();
            var builder = new MockStitchingBuilder();

            // act
            builder.AddSchemaFromFile("contract",
                                      IOPath.Combine("__resources__", "Contract.graphql"))
            .AddSchemaFromFile("customer",
                               IOPath.Combine("__resources__", "Customer.graphql"));

            // assert
            var services = new DictionaryServiceProvider(
                typeof(IHttpClientFactory),
                clientFactory);
            var merger = new SchemaMerger();

            foreach (KeyValuePair <NameString, LoadSchemaDocument> item in
                     builder.Schemas)
            {
                merger.AddSchema(item.Key, item.Value.Invoke(services));
            }

            SchemaSyntaxSerializer.Serialize(merger.Merge()).MatchSnapshot();
        }
示例#3
0
        public void AddSchema_2()
        {
            // arrange
            Schema customerSchema = Schema.Create(
                CustomerSchemaFactory.ConfigureSchema);

            Schema contractSchema = Schema.Create(
                ContractSchemaFactory.ConfigureSchema);

            var builder = new MockStitchingBuilder();

            // act
            builder.AddSchema("customer", customerSchema)
            .AddSchema("contract", contractSchema);

            // assert
            var services = new EmptyServiceProvider();
            var merger   = new SchemaMerger();

            foreach (KeyValuePair <NameString, ExecutorFactory> item in
                     builder.Executors)
            {
                ISchema schema = item.Value.Invoke(services).Schema;
                merger.AddSchema(item.Key,
                                 SchemaSerializer.SerializeSchema(schema));
            }

            SchemaSyntaxSerializer.Serialize(merger.Merge()).MatchSnapshot();
        }
示例#4
0
        public void AddSchemaFromString_NameIsEmpty_ArgumentNullException()
        {
            // arrange
            var builder = new MockStitchingBuilder();

            // act
            Action action = () =>
                            StitchingBuilderExtensions
                            .AddSchemaFromString(builder, new NameString(), "bar");

            // assert
            Assert.Equal("name",
                         Assert.Throws <ArgumentException>(action).ParamName);
        }
示例#5
0
        public void AddExtensionsFromFile_SchemaIsNull_ArgumentNullException(
            string filePath)
        {
            // arrange
            var builder = new MockStitchingBuilder();

            // act
            Action action = () =>
                            StitchingBuilderExtensions
                            .AddExtensionsFromFile(builder, filePath);

            // assert
            Assert.Equal("path",
                         Assert.Throws <ArgumentException>(action).ParamName);
        }
示例#6
0
        public void AddExtensionsFromString_SchemaIsNull_ArgumentNullException(
            string schema)
        {
            // arrange
            var builder = new MockStitchingBuilder();

            // act
            Action action = () =>
                            StitchingBuilderExtensions
                            .AddExtensionsFromString(builder, schema);

            // assert
            Assert.Equal("extensions",
                         Assert.Throws <ArgumentException>(action).ParamName);
        }
示例#7
0
        public void AddSchema_2_SchemaNameIsEmpty_ArgumentNullException()
        {
            // arrange
            ISchema customerSchema = CustomerSchemaFactory.Create();
            var     builder        = new MockStitchingBuilder();

            // act
            Action action = () =>
                            StitchingBuilderExtensions
                            .AddSchema(builder, new NameString(), customerSchema);

            // assert
            Assert.Equal("name",
                         Assert.Throws <ArgumentException>(action).ParamName);
        }
示例#8
0
        public void AddSchema_2_SchemaIsNull_ArgumentNullException()
        {
            // arrange
            ISchema customerSchema = CustomerSchemaFactory.Create();
            var     builder        = new MockStitchingBuilder();

            // act
            Action action = () =>
                            StitchingBuilderExtensions
                            .AddSchema(builder, "foo", null);

            // assert
            Assert.Equal("schema",
                         Assert.Throws <ArgumentNullException>(action).ParamName);
        }
示例#9
0
        public void AddSchemaFromString()
        {
            // arrange
            var builder = new MockStitchingBuilder();

            // act
            builder.AddSchemaFromString("contract",
                                        FileResource.Open("Contract.graphql"))
            .AddSchemaFromString("customer",
                                 FileResource.Open("Customer.graphql"));

            // assert
            var services = new EmptyServiceProvider();
            var merger   = new SchemaMerger();

            foreach (KeyValuePair <NameString, LoadSchemaDocument> item in
                     builder.Schemas)
            {
                merger.AddSchema(item.Key, item.Value.Invoke(services));
            }

            SchemaSyntaxSerializer.Serialize(merger.Merge()).MatchSnapshot();
        }