public void Should_return_default_accept_types(LambdaExpression expression, Type modelType, string accept, string contentType, Encoding encoding, string[] names) { var requestGraph = RequestGraph.CreateFor(expression); var actionDescriptor = requestGraph.GetActionDescriptor(); var viewSource = new TestViewSource(_configuration, new ViewDescriptor("fark", () => "farker")); var context = new ViewSourceContext(actionDescriptor, null); var results = viewSource.GetViews(context); viewSource.Context.ShouldEqual(context); viewSource.Encoding.ShouldEqual(encoding); viewSource.ViewNames.ShouldOnlyContain(names); results.Length.ShouldEqual(1); var view = results.First(); view.Action.ShouldEqual(actionDescriptor); view.AcceptTypes.ShouldOnlyContain(accept); view.ContentType.ShouldEqual(contentType); view.Encoding.ShouldEqual(encoding); view.Hash.ShouldEqual("farker".Hash()); view.ModelType.Type.ShouldEqual(modelType); view.Source.ShouldEqual("farker"); view.Type.ShouldEqual("fark"); }
protected override ViewDescriptor[] GetViewDescriptors( ViewSourceContext context, string[] viewNames, Encoding encoding) { Context = context; ViewNames = viewNames; Encoding = encoding; return(_viewDescriptors); }
public void Should_return_default_view_names() { var requestGraph = RequestGraph.CreateFor <Handler>(x => x.Default()); var context = new ViewSourceContext(requestGraph.GetActionDescriptor(), null); ViewSourceBase.DefaultViewNameConvention(context) .ShouldOnlyContain( "ViewSourceBaseTests.DefaultModel", "ViewSourceBaseTests.Handler"); }
public virtual void Decorate(ActionDecoratorContext context) { var engines = _viewEngines .ThatApplyTo(context.ActionDescriptor, _configuration, _viewConfiguration, _httpConfiguration) .SelectMany(x => x .SupportedViewTypes.Select(t => new { Engine = x, Type = t })).ToList(); var supportedTypes = engines.SelectMany(x => x.Engine.SupportedViewTypes).ToArray(); var viewSourceContext = new ViewSourceContext( context.ActionDescriptor, supportedTypes); var result = _viewSources .ThatApplyTo(supportedTypes, context.ActionDescriptor, _configuration, _viewConfiguration, _httpConfiguration) .SelectMany(x => x.GetViews(viewSourceContext)) .Join(engines, x => x.Type, x => x.Type, (v, e) => new { View = v, e.Engine }) .FirstOrDefault(); if (result == null) { return; } result.Engine.PreCompile(result.View); context .ConfigureRegistry(x => x .Register(new ViewContent(result.View, result.Engine)) .Register <IResponseWriter, ViewWriter>()) .ConfigureResponseWriters(x => { if (_viewConfiguration.ClearOtherWriters) { x.Clear(); } x.Append <ViewWriter>(); }); }