示例#1
0
        public void IgnoreType_2()
        {
            // arrange
            IDocumentRewriter docRewriter = null;
            var mock = new Mock <IStitchingBuilder>();

            mock.Setup(t => t.AddDocumentRewriter(
                           It.IsAny <IDocumentRewriter>()))
            .Returns(new Func <IDocumentRewriter, IStitchingBuilder>(t =>
            {
                docRewriter = t;
                return(mock.Object);
            }));
            NameString schemaName = "Foo";
            NameString typeName   = "Bar";

            // act
            StitchingBuilderExtensions.IgnoreType(
                mock.Object, schemaName, typeName);

            // assert
            RemoveTypeRewriter rewriter =
                Assert.IsType <RemoveTypeRewriter>(docRewriter);

            Assert.Equal(schemaName, rewriter.SchemaName);
            Assert.Equal(typeName, rewriter.TypeName);
        }
示例#2
0
        public IStitchingBuilder AddDocumentRewriter(IDocumentRewriter rewriter)
        {
            if (rewriter == null)
            {
                throw new ArgumentNullException(nameof(rewriter));
            }

            _docRewriters.Add(rewriter);
            return(this);
        }
        /// <summary>
        /// Add a document rewriter in order to rewrite
        /// a remote schema document before it is being merged.
        /// </summary>
        /// <param name="builder">
        /// The <see cref="IRequestExecutorBuilder"/>.
        /// </param>
        /// <param name="rewriter">
        /// The document 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 AddDocumentRewriter(
            this IRequestExecutorBuilder builder,
            IDocumentRewriter rewriter)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

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

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

            mock.Setup(t => t.AddDocumentRewriter(
                           It.IsAny <IDocumentRewriter>()))
            .Returns(new Func <IDocumentRewriter, IStitchingBuilder>(t =>
            {
                docRewriter = t;
                return(mock.Object);
            }));

            // act
            StitchingBuilderExtensions
            .AddDocumentRewriter(mock.Object, (schema, doc) => doc);

            // assert
            Assert.IsType <DelegateDocumentRewriter>(docRewriter);
        }
示例#5
0
        public void IgnoreRootTypes_2_NameIsEmpty_ArgumentException()
        {
            // arrange
            IDocumentRewriter docRewriter = null;
            var mock = new Mock <IStitchingBuilder>();

            mock.Setup(t => t.AddDocumentRewriter(
                           It.IsAny <IDocumentRewriter>()))
            .Returns(new Func <IDocumentRewriter, IStitchingBuilder>(t =>
            {
                docRewriter = t;
                return(mock.Object);
            }));

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

            // assert
            Assert.Equal("schemaName",
                         Assert.Throws <ArgumentException>(action).ParamName);
        }
示例#6
0
        public void IgnoreRootTypes()
        {
            // arrange
            IDocumentRewriter docRewriter = null;
            var mock = new Mock <IStitchingBuilder>();

            mock.Setup(t => t.AddDocumentRewriter(
                           It.IsAny <IDocumentRewriter>()))
            .Returns(new Func <IDocumentRewriter, IStitchingBuilder>(t =>
            {
                docRewriter = t;
                return(mock.Object);
            }));

            // act
            StitchingBuilderExtensions.IgnoreRootTypes(mock.Object);

            // assert
            RemoveRootTypeRewriter rewriter =
                Assert.IsType <RemoveRootTypeRewriter>(docRewriter);

            Assert.Null(rewriter.SchemaName);
        }
示例#7
0
        public void AddDocumentRewriter_DelegateIsNull_ArgumentNullException()
        {
            // arrange
            IDocumentRewriter docRewriter = null;
            var mock = new Mock <IStitchingBuilder>();

            mock.Setup(t => t.AddDocumentRewriter(
                           It.IsAny <IDocumentRewriter>()))
            .Returns(new Func <IDocumentRewriter, IStitchingBuilder>(t =>
            {
                docRewriter = t;
                return(mock.Object);
            }));

            // act
            Action action = () => StitchingBuilderExtensions
                            .AddDocumentRewriter(mock.Object,
                                                 (RewriteDocumentDelegate)null);

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