public void MapToProperty_ContentHasNoChildren_NoObjectsCreated()
        {
            //Assign
            var content   = _contentService.GetById(new Guid("{3F34475B-D744-40E9-BC30-5D33249FA9FE}"));
            var children  = _contentService.GetChildren(content.Id);
            var service   = Substitute.For <IUmbracoService>();
            var predicate = Arg.Is <IContent>(x => children.Any(y => x.Id == y.Id));

            var config = new UmbracoChildrenConfiguration();

            config.InferType    = false;
            config.IsLazy       = false;
            config.PropertyInfo = typeof(Stub).GetProperty("Children");

            var mapper = new UmbracoChildrenMapper();

            //ME - Although this looks correct I am not sure it is
            service.CreateType(typeof(StubChild), predicate, false, false).ReturnsForAnyArgs(info => new StubChild
            {
                Id = info.Arg <IContent>().Id
            });

            var context = new UmbracoDataMappingContext(null, content, service, false);

            mapper.Setup(new DataMapperResolverArgs(null, config));

            //Act
            var result = mapper.MapToProperty(context) as IEnumerable <StubChild>;

            //Assert
            Assert.AreEqual(0, result.Count());
        }
        /// <summary>
        /// Configures the specified property info.
        /// </summary>
        /// <param name="propertyInfo">The property info.</param>
        /// <returns></returns>
        public override AbstractPropertyConfiguration Configure(PropertyInfo propertyInfo)
        {
            var config = new UmbracoChildrenConfiguration();

            base.Configure(propertyInfo, config);
            return(config);
        }
        /// <summary>
        /// Configures the specified property info.
        /// </summary>
        /// <param name="propertyInfo">The property info.</param>
        /// <returns></returns>
        public override AbstractPropertyConfiguration Configure(PropertyInfo propertyInfo)
        {
            var config = new UmbracoChildrenConfiguration {
                DocumentTypeAlias = DocumentTypeAlias
            };

            base.Configure(propertyInfo, config);
            return(config);
        }
        public void CanHandle_ConfigIsChildren_ReturnsTrue()
        {
            //Assign
            var mapper = new UmbracoChildrenMapper();
            var config = new UmbracoChildrenConfiguration();

            //Act
            var result = mapper.CanHandle(config, null);

            //Assert
            Assert.IsTrue(result);
        }
        public void MapToProperty_ContentHasChildren_ChildrenObjectsAreCreated()
        {
            //Assign
            var content   = _contentService.GetById(new Guid("{373D1D1C-BD0D-4A8C-9A67-1D513815FE10}"));
            var children  = _contentService.GetChildren(content.Id);
            var service   = Substitute.For <IUmbracoService>();
            var predicate = Arg.Is <IContent>(x => children.Any(y => x.Id == y.Id));

            var config = new UmbracoChildrenConfiguration();

            config.InferType    = false;
            config.IsLazy       = false;
            config.PropertyInfo = typeof(Stub).GetProperty("Children");

            var mapper = new UmbracoChildrenMapper();

            //ME - Although this looks correct I am not sure it is
            service.ContentService.Returns(_contentService);
            service.CreateType(typeof(StubChild), predicate, false, false).ReturnsForAnyArgs(info => new StubChild
            {
                Id = info.Arg <IContent>().Id
            });

            var context = new UmbracoDataMappingContext(null, content, service, false);

            mapper.Setup(new DataMapperResolverArgs(null, config));

            //Act
            var result = mapper.MapToProperty(context) as IEnumerable <StubChild>;

            //Assert
            Assert.AreEqual(1, children.Count());
            Assert.AreEqual(children.Count(), result.Count());

            foreach (IContent child in children)
            {
                Assert.IsTrue(result.Any(x => x.Id == child.Id));
            }
        }
 /// <summary>
 /// Configures the specified property info.
 /// </summary>
 /// <param name="propertyInfo">The property info.</param>
 /// <returns></returns>
 public override AbstractPropertyConfiguration Configure(PropertyInfo propertyInfo)
 {
     var config = new UmbracoChildrenConfiguration();
     base.Configure(propertyInfo, config);
     return config;
 }
 /// <summary>
 /// Configures the specified property info.
 /// </summary>
 /// <param name="propertyInfo">The property info.</param>
 /// <returns></returns>
 public override AbstractPropertyConfiguration Configure(PropertyInfo propertyInfo)
 {
     var config = new UmbracoChildrenConfiguration {DocumentTypeAlias = DocumentTypeAlias};
     base.Configure(propertyInfo, config);
     return config;
 }