public void ShouldFailToDiscoverRootTypeOnCollectionWhenNoTypeInPropertyBag()
        {
            var sut = new FormHelperEx();

            sut.SetController(new HomeController(), new ControllerContext());

            var prop = sut.ObtainTargetProperty(RequestContext.PropertyBag, "items[0].Name");

            Assert.IsNull(prop);
        }
        public void ShouldDiscoverRootTypeOnCollection()
        {
            var sut = new FormHelperEx();

            sut.SetController(new HomeController(), new ControllerContext());

            sut.ControllerContext.PropertyBag["itemstype"] = typeof(Product);             //no need to pass indexer
            var prop   = sut.ObtainTargetProperty(RequestContext.PropertyBag, "items[0].Name");
            var expect = typeof(Product).GetProperty("Name");

            Assert.AreEqual(expect, prop);
        }
        public void ShouldDiscoverRootTypeOnCollectionWhenIndexedRootInPropertyBag()
        {
            var sut = new FormHelperEx();

            sut.SetController(new HomeController(), new ControllerContext());

            //this is what current code requires to discover
            sut.ControllerContext.PropertyBag["items[0]type"] = typeof(Product);
            var prop   = sut.ObtainTargetProperty(RequestContext.PropertyBag, "items[0].Name");
            var expect = typeof(Product).GetProperty("Name");

            Assert.AreEqual(expect, prop);
        }