private void Index(PaperRendererInfo renderer) { try { if (!paperTypeIndex.ContainsKey(renderer.PaperType)) { paperTypeIndex[renderer.PaperType] = new List <PaperRendererInfo>(); } pathIndex.Add(renderer.PathTemplate); pathTemplateIndex[renderer.PathTemplate] = renderer; paperTypeIndex[renderer.PaperType].Add(renderer); Debug.WriteLine($"[PAPER]Mapped: {renderer.PaperType.FullName}: /{renderer.PathTemplate}"); Console.WriteLine($"[PAPER]Mapped: {renderer.PaperType.FullName}: /{renderer.PathTemplate}"); } catch (Exception ex) { ex.Trace($"[PAPER]Fault: {renderer.PaperType.FullName}: {ex.Message}"); } }
public void RenderEntity_HasRowsLinks(Type paperType) { var template = "/{id}"; var path = "/17"; var renderer = new QueryRenderer(injector.Object, registry.Object); renderer.PathTemplate = template; renderer.PaperType = paperType; //... mock da classe link referenciada ... var linkedRenderer = new PaperRendererInfo { PaperRendererType = typeof(QueryRenderer), PaperType = typeof(DataAndRowsQuery), PathTemplate = "/{id}/RowLink" }; registry .Setup(x => x.FindPaperRenderers(It.IsAny <Type>())) .Returns(linkedRenderer.AsSingle()); // When httpRequest.Setup(x => x.Path).Returns(path); var entity = renderer.RenderEntity(httpContext.Object, path); var secondRow = entity?.Data?.Entities?.Skip(1).FirstOrDefault(); // Then var expected = new string[] { "rows.link.com?q=2", "http://localhost:90/Tests/2/RowLink?offset=1&limit=2&sort[]=id:desc" }; var obtained = secondRow?.Links .Where(x => x.Class?.Contains("rowLink") == true) .Select(x => x.Href) .ToArray(); Assert.Equal(expected, obtained); }
public void Add(PaperRendererInfo renderer) => Index(renderer);
private Ret <Entity> RenderEntity(HttpContext httpContext, IServiceProvider injector, PaperRendererInfo rendererType) { try { var path = httpContext.Request.Path.Value; var renderer = (IPaperRenderer)injector.CreateInstance(rendererType.PaperRendererType); renderer.PaperType = rendererType.PaperType; renderer.PathTemplate = rendererType.PathTemplate; var ret = renderer.RenderEntity(httpContext, path); return(ret); } catch (Exception ex) { return(ex); } }