示例#1
0
        public void IgnoreField()
        {
            // arrange
            ITypeRewriter typeRewriter = null;
            var           mock         = new Mock <IStitchingBuilder>();

            mock.Setup(t => t.AddTypeRewriter(
                           It.IsAny <ITypeRewriter>()))
            .Returns(new Func <ITypeRewriter, IStitchingBuilder>(t =>
            {
                typeRewriter = t;
                return(mock.Object);
            }));
            NameString schemaName     = "Foo";
            var        fieldReference = new FieldReference("A", "a");

            // act
            StitchingBuilderExtensions.IgnoreField(
                mock.Object, schemaName, fieldReference);

            // assert
            RemoveFieldRewriter rewriter =
                Assert.IsType <RemoveFieldRewriter>(typeRewriter);

            Assert.Equal(schemaName, rewriter.SchemaName);
            Assert.Equal(fieldReference.TypeName, rewriter.Field.TypeName);
            Assert.Equal(fieldReference.FieldName, rewriter.Field.FieldName);
        }
示例#2
0
        public IStitchingBuilder AddTypeRewriter(ITypeRewriter rewriter)
        {
            if (rewriter == null)
            {
                throw new ArgumentNullException(nameof(rewriter));
            }

            _typeRewriters.Add(rewriter);
            return(this);
        }
        /// <summary>
        /// Add a type definition rewriter in order to rewrite a
        /// type definition on a remote schema document before
        /// it is being merged.
        /// </summary>
        /// <param name="builder">
        /// The <see cref="IRequestExecutorBuilder"/>.
        /// </param>
        /// <param name="rewriter">
        /// The type definition rewriter.
        /// </param>
        /// <returns>
        /// Returns the <see cref="IRequestExecutorBuilder"/>.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="builder"/> is <c>null</c>, or
        /// <paramref name="rewriter"/> is <c>null</c>.
        /// </exception>
        public static IRequestExecutorBuilder AddTypeRewriter(
            this IRequestExecutorBuilder builder,
            ITypeRewriter rewriter)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (rewriter == null)
            {
                throw new ArgumentNullException(nameof(rewriter));
            }

            return(builder.ConfigureSchema(
                       s => s.AddTypeRewriter(rewriter)));
        }
示例#4
0
        public void AddTypeRewriter()
        {
            // arrange
            ITypeRewriter typeRewriter = null;
            var           mock         = new Mock <IStitchingBuilder>();

            mock.Setup(t => t.AddTypeRewriter(It.IsAny <ITypeRewriter>()))
            .Returns(new Func <ITypeRewriter, IStitchingBuilder>(t =>
            {
                typeRewriter = t;
                return(mock.Object);
            }));

            // act
            StitchingBuilderExtensions
            .AddTypeRewriter(mock.Object, (schema, type) => type);

            // assert
            Assert.IsType <DelegateTypeRewriter>(typeRewriter);
        }
示例#5
0
        public void AddTypeRewriter_DelegateIsNull_ArgumentNullException()
        {
            // arrange
            ITypeRewriter typeRewriter = null;
            var           mock         = new Mock <IStitchingBuilder>();

            mock.Setup(t => t.AddTypeRewriter(It.IsAny <ITypeRewriter>()))
            .Returns(new Func <ITypeRewriter, IStitchingBuilder>(t =>
            {
                typeRewriter = t;
                return(mock.Object);
            }));

            // act
            Action action = () => StitchingBuilderExtensions
                            .AddTypeRewriter(mock.Object,
                                             (RewriteTypeDefinitionDelegate)null);

            // assert
            Assert.Equal("rewrite",
                         Assert.Throws <ArgumentNullException>(action).ParamName);
        }
示例#6
0
 public IStitchingBuilder AddTypeRewriter(
     ITypeRewriter rewriter)
 {
     throw new NotSupportedException();
 }