public void Resolver_ConstantT_DescNull_ArgExc()
        {
            // arrange
            // act
            Action action = () =>
                            ResolveObjectFieldDescriptorExtensions
                            .Resolve <object>(null, new object());

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public void Resolver_IResolverContextObject_DescNull_ArgExc()
        {
            // arrange
            // act
            Action action = () =>
                            ResolveObjectFieldDescriptorExtensions
                            .Resolve(
                null,
                new Func <IResolverContext, object>(c => new object()));

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public void Resolver_IResolverContextCtT_DescNull_ArgExc()
        {
            // arrange
            // act
            Action action = () =>
                            ResolveObjectFieldDescriptorExtensions
                            .Resolve <object>(
                null,
                new Func <IResolverContext, CancellationToken, object>(
                    (c, ct) => new object()));

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public void Resolver_TaskOfT_DescNull_ArgExc()
        {
            // arrange
            // act
            Action action = () =>
                            ResolveObjectFieldDescriptorExtensions
                            .Resolve <object>(
                null,
                new Func <Task <object> >(() =>
                                          Task.FromResult(new object())));

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public void Resolver_IResolverContextTaskOfObject_ResolverNull_ArgExc()
        {
            // arrange
            var descriptor = new Mock <IObjectFieldDescriptor>();

            // act
            Action action = () =>
                            ResolveObjectFieldDescriptorExtensions
                            .Resolve(
                descriptor.Object,
                default(Func <IResolverContext, Task <object> >));

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public async Task Resolver_IResolverContextObject_ResolverIsSet()
        {
            // arrange
            FieldResolverDelegate resolver = null;
            var resolverFunc = new Func <IResolverContext, object>(c => "foo");
            var descriptor   = new Mock <IObjectFieldDescriptor>();

            descriptor.Setup(t => t.Resolve(It.IsAny <FieldResolverDelegate>()))
            .Returns(
                new Func <FieldResolverDelegate, IObjectFieldDescriptor>(
                    r =>
            {
                resolver = r;
                return(descriptor.Object);
            }));

            // act
            ResolveObjectFieldDescriptorExtensions
            .Resolve(descriptor.Object, resolverFunc);

            // assert
            Assert.Equal("foo", await resolver.Invoke(
                             new Mock <IResolverContext>().Object));
        }