Beispiel #1
0
        public void OnPageHandlerExecuting_SetsSubject()
        {
            // Arrange
            var filter        = new PageViewDataAttributeFilter(Array.Empty <LifecycleProperty>());
            var handler       = new object();
            var httpContext   = new DefaultHttpContext();
            var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor());
            var pageContext   = new PageContext(actionContext);
            var context       = new PageHandlerExecutingContext(pageContext, new IFilterMetadata[0], new HandlerMethodDescriptor(), new Dictionary <string, object>(), handler);

            // Act
            filter.OnPageHandlerExecuting(context);

            // Assert
            Assert.Same(handler, filter.Subject);
        }
Beispiel #2
0
        public void OnPageHandlerExecuting_AddsFeature()
        {
            // Arrange
            var filter        = new PageViewDataAttributeFilter(Array.Empty <LifecycleProperty>());
            var handler       = new object();
            var httpContext   = new DefaultHttpContext();
            var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor());
            var pageContext   = new PageContext(actionContext);
            var context       = new PageHandlerExecutingContext(pageContext, new IFilterMetadata[0], new HandlerMethodDescriptor(), new Dictionary <string, object>(), handler);

            // Act
            filter.OnPageHandlerExecuting(context);

            // Assert
            var feature = Assert.Single(httpContext.Features, f => f.Key == typeof(IViewDataValuesProviderFeature));

            Assert.Same(filter, feature.Value);
        }
Beispiel #3
0
        public void ProvideValues_AddsNonNullPropertyValuesToViewData()
        {
            // Arrange
            var type       = typeof(TestModel);
            var properties = new[]
            {
                new LifecycleProperty(type.GetProperty(nameof(TestModel.Prop1)), "Prop1"),
                new LifecycleProperty(type.GetProperty(nameof(TestModel.Prop2)), "Prop2"),
                new LifecycleProperty(type.GetProperty(nameof(TestModel.Prop3)), "Prop3"),
            };

            var controller = new TestModel();
            var filter     = new PageViewDataAttributeFilter(properties)
            {
                Subject = controller,
            };
            var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary());

            // Act
            controller.Prop1 = "New-Value";
            filter.ProvideViewDataValues(viewData);

            // Assert
            Assert.Collection(
                viewData.OrderBy(kvp => kvp.Key),
                kvp =>
            {
                Assert.Equal("Prop1", kvp.Key);
                Assert.Equal("New-Value", kvp.Value);
            },
                kvp =>
            {
                Assert.Equal("Prop2", kvp.Key);
                Assert.Equal("Test", kvp.Value);
            });
        }