public void CompositeLoader_DoesntAddNulls() { var composite = new CompositeLoader(); composite.AddLoaders(new StringLoader(), null); Assert.Single(composite.Loaders); }
/// <inheritdoc/> public string Render(string template, object view, IDictionary <string, string> partials, RenderSettings settings) { var loadedTemplate = RendererSettings.TemplateLoader.Load(template); if (loadedTemplate == null) { throw new UnknownTemplateException("No template was found with the name '" + template + "'"); } var document = RendererSettings.Parser.Parse(loadedTemplate, RendererSettings.DefaultTags, pipeline: RendererSettings.ParserPipeline); var textwriter = new StringWriter(); var renderer = new StringRender(textwriter, RendererSettings.RendererPipeline, RendererSettings.MaxRecursionDepth); var partialsLoader = RendererSettings.PartialTemplateLoader; if (partials != null && partials.Keys.Count > 0) { partialsLoader = new CompositeLoader(new DictionaryLoader(partials), RendererSettings.PartialTemplateLoader); } renderer.Render(document, new Context(view, RendererSettings, partialsLoader, settings ?? RendererSettings.RenderSettings)); renderer.Writer.Flush(); return(((StringWriter)renderer.Writer).ToString()); }
public void CompositeLoader_DoesntAddNulls() { var composite = new CompositeLoader(); composite.AddLoaders(new StringLoader(), null); Assert.Equal(1, composite.Loaders.Count); }
public void CompositeLoader_Should_Be_Able_To_Contain_StringLoader() { var loader = new CompositeLoader(new StringLoader()); const string template = "{{foo}}"; var loadedTemplate = loader.Load("{{foo}}"); Assert.Equal(template, loadedTemplate); }
public void CompositeLoader_Should_Throw_Exception_If_No_Template_Found() { var loader = new CompositeLoader(new DictionaryLoader(new Dictionary <string, string> { { "test", "{{foo}}" } })); var ex = Assert.Throws <UnknownTemplateException>(() => loader.Load("test2")); Assert.Equal("No template was found with the name 'test2'", ex.Message); }
private CompilerContext BuildCompilerContext(Type viewType, IDictionary <string, string> partials, CompilationSettings settings) { var partialsLoader = CompilerSettings.PartialTemplateLoader; if (partials != null && partials.Keys.Count > 0) { partialsLoader = new CompositeLoader(new DictionaryLoader(partials), CompilerSettings.PartialTemplateLoader); } return(new CompilerContext(viewType, Expression.Parameter(viewType, "src"), CompilerSettings, partialsLoader, settings ?? CompilerSettings.CompilationSettings)); }
public void CompositeLoader_Should_Fall_Through() { var loader = new CompositeLoader( new DictionaryLoader(new Dictionary <string, string> { { "test", "{{foo}}" } }), new StringLoader()); const string template = "{{foo}}"; var loadedTemplate = loader.Load("{{foo}}"); Assert.Equal(template, loadedTemplate); }
private TBuilder CombineLoaders(ref IStubbleLoader currentLoader, IStubbleLoader loader) { if (currentLoader is CompositeLoader compositeLoader) { var composite = compositeLoader; composite.AddLoader(loader); } else { var composite = new CompositeLoader(currentLoader, loader); currentLoader = composite; } return((TBuilder)this); }
public void CompositeLoader_ThrowsOnNull() { var composite = new CompositeLoader(); Assert.Throws <ArgumentNullException>(() => composite.AddLoader(null)); }