Exemplo n.º 1
0
        private async Task <IResource> ResourcePipeline(ActionContext actionContext, object resourceObject, bool isRoot)
        {
            // TODO: Should the resourceObject actually be an objectresult?
            if (actionContext == null)
            {
                throw new ArgumentNullException(nameof(actionContext));
            }

            var resourceFactoryContext = new ResourceFactoryContext
            {
                ActionContext  = actionContext,
                Resource       = resourceObject,
                IsRootResource = isRoot
            };

            var resource = await InvokeResourceFactory(resourceFactoryContext);

            var lggr       = this.loggerFactory.CreateLogger <HalResourceInspectorInvoker>();
            var inspectors = this.selector.Select(isRoot);

            var resourceInspector = new HalResourceInspectorInvoker(
                inspectors,
                lggr);

            var inspectingContext = new HalResourceInspectingContext(
                resource, actionContext, isRoot, EmbeddedResourceFactory, this.mvcPipeline, resourceObject);

            var result = await resourceInspector.InspectAsync(inspectingContext);

            return(result.Resource);
        }
        public void IsRootResource_DefaultFalse()
        {
            // Arrange
            var context = new ResourceFactoryContext();

            // Act
            bool isRoot = context.IsRootResource;

            // Assert
            Assert.IsFalse(isRoot);
        }
        public void IsRootResource_GetSet()
        {
            // Arrange
            var context = new ResourceFactoryContext();

            // Act
            context.IsRootResource = true;
            bool isRoot = context.IsRootResource;

            // Assert
            Assert.IsTrue(isRoot);
        }
        public void Resource_GetSet()
        {
            // Arrange
            var context = new ResourceFactoryContext();
            var stub    = Mock.Of <IResource>();

            // Act
            context.Resource = stub;

            // Assert
            Assert.AreSame(stub, context.Resource);
        }
        public void ActionContext_GetSet()
        {
            // Arrange
            var context = new ResourceFactoryContext();
            var stub    = Mock.Of <ActionContext>();

            // Act
            context.ActionContext = stub;

            // Assert
            Assert.AreSame(stub, context.ActionContext);
        }
        public void CreateResource_IResourceUnchanged()
        {
            var factory  = new DefaultHalResourceFactory();
            var resource = Mock.Of <IResource>();
            var context  = new ResourceFactoryContext
            {
                Resource = resource
            };

            var result = factory.CreateResource(context);

            Assert.AreSame(resource, result);
        }
        public void CreateResource_EnumerableCreatesCollection()
        {
            var    factory  = new DefaultHalResourceFactory();
            object resource = new List <string>();
            var    context  = new ResourceFactoryContext
            {
                Resource = resource
            };

            var result = factory.CreateResource(context);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <ResourceCollection <object> >(result);
        }
Exemplo n.º 8
0
 private async Task <IResource> InvokeResourceFactory(ResourceFactoryContext context)
 {
     if (this.resourceFactory is IAsyncHalResourceFactory asyncFactory)
     {
         return(await asyncFactory.CreateResourceAsync(context));
     }
     else if (this.resourceFactory is IHalResourceFactory syncFactory)
     {
         return(syncFactory.CreateResource(context));
     }
     else
     {
         throw new HalException($"Could not understand hal resource factory type. Expecting {nameof(IAsyncHalResourceFactory)} or {nameof(IHalResourceFactory)}.");
     }
 }
        public void CreateResource_NoResource_Wrapped()
        {
            var    factory  = new DefaultHalResourceFactory();
            object resource = new object();
            var    context  = new ResourceFactoryContext
            {
                Resource = resource
            };

            var result = factory.CreateResource(context);

            Assert.IsInstanceOf <Resource <object> >(result);
            var casted = (Resource <object>)result;

            Assert.AreSame(resource, casted.Data);
        }
        public void CreateResource_EnumerableIncludedInCollection()
        {
            var    factory  = new DefaultHalResourceFactory();
            object resource = new List <object> {
                new object(), new object()
            };
            var context = new ResourceFactoryContext
            {
                Resource = resource
            };

            var result = factory.CreateResource(context);
            var casted = (IResourceCollection)result;

            Assert.AreEqual(2, casted.Collection.Count);
        }
        public void CreateResource_NullResourceIsFine()
        {
            var    factory  = new DefaultHalResourceFactory();
            object resource = null;
            var    context  = new ResourceFactoryContext
            {
                Resource = resource
            };

            var result = factory.CreateResource(context);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <Resource <object> >(result);
            var casted = (Resource <object>)result;

            Assert.IsNull(casted.Data);
        }
 public void Ctor_HasDefaultConstructor()
 {
     // Won't compile if not true
     var context = new ResourceFactoryContext();
 }