Esempio n. 1
0
        public void WritesExpectedCollectionIndexHiddenInput_WhenThereIsAnIndexInRequestData()
        {
            const string collectionName   = "CollectionName";
            var          index0           = Guid.NewGuid();
            var          index1           = Guid.NewGuid();
            var          indexes          = string.Format("{0},{1}", index0, index1);
            var          httpContext      = new Mock <HttpContext>();
            var          httpContextItems = new Dictionary <object, object>
            {
                { "__htmlPrefixScopeExtensions_IdsToReuse_CollectionName", "" }
            };

            httpContext.SetupGet(p => p.Items).Returns(httpContextItems);

            var httpRequest = new Mock <HttpRequest>();

            httpRequest.SetupGet(i => i.Form[It.Is <string>(s => s == string.Format("{0}.index", collectionName))])
            .Returns(indexes);
            httpContext.SetupGet(p => p.Request).Returns(httpRequest.Object);

            var viewContext = new ViewContext
            {
                HttpContext = httpContext.Object,
                Writer      = new StringWriter()
            };

            _htmlHelper.SetupGet(x => x.ViewContext).Returns(viewContext);

            using (var result = HtmlPrefixScopeExtensions.BeginCollectionItem(_htmlHelper.Object, collectionName))
            {
                Assert.NotNull(result);
            }

            var text = viewContext.Writer.ToString();

            Assert.NotNull(text);
            Assert.NotEmpty(text);
            Assert.StartsWith(string.Format(
                                  @"<input type=""hidden"" name=""{0}.index"" autocomplete=""off"" value=""{1}"" />",
                                  collectionName, index0), text);
        }
Esempio n. 2
0
        public void WritesCollectionIndexHiddenInput_WhenThereIsNothingInRequestData()
        {
            const string collectionName   = "CollectionName";
            var          index0           = Guid.NewGuid();
            var          index1           = Guid.NewGuid();
            var          indexes          = string.Format("{0},{1}", index0, index1);
            var          httpContext      = new Mock <HttpContext>();
            var          httpContextItems = new Dictionary <object, object>();

            httpContext.Setup(p => p.Items).Returns(httpContextItems);

            var httpRequest = new Mock <HttpRequest>();

            httpContext.Setup(p => p.Request).Returns(httpRequest.Object);

            httpRequest.SetupGet(i => i.Form[It.Is <string>(s => s == string.Format("{0}.index", collectionName))])
            .Returns(indexes);

            var viewContext = new ViewContext();
            var writer      = new StringWriter();

            viewContext.Writer = writer;

            _htmlHelper.SetupGet(x => x.ViewContext).Returns(viewContext);
            _htmlHelper.SetupGet(x => x.ViewData).Returns(new ViewDataDictionary(new Mock <IModelMetadataProvider>().Object, new ModelStateDictionary()));
            viewContext.HttpContext = httpContext.Object;

            using (var result = HtmlPrefixScopeExtensions.BeginCollectionItem(_htmlHelper.Object, collectionName))
            {
                Assert.NotNull(result);
            }

            var text = writer.ToString();

            Assert.NotNull(text);
            Assert.NotEmpty(text);
            Assert.StartsWith(string.Format(
                                  @"<input type=""hidden"" name=""{0}.index"" autocomplete=""off"" value=""",
                                  collectionName), text);
            Assert.Contains(@""" />", text);
        }