public void CreateDesignTime_Lambda_AddsFeaturesAndPhases() { // Arrange IRazorEngineFeature[] features = null; IRazorEnginePhase[] phases = null; // Act var engine = RazorEngine.CreateDesignTime(builder => { builder.Features.Clear(); builder.Phases.Clear(); builder.Features.Add(Mock.Of <IRazorEngineFeature>()); builder.Features.Add(Mock.Of <IRazorEngineFeature>()); builder.Phases.Add(Mock.Of <IRazorEnginePhase>()); builder.Phases.Add(Mock.Of <IRazorEnginePhase>()); features = builder.Features.ToArray(); phases = builder.Phases.ToArray(); }); // Assert Assert.Collection( engine.Features, f => Assert.Same(features[0], f), f => Assert.Same(features[1], f)); Assert.Collection( engine.Phases, p => Assert.Same(phases[0], p), p => Assert.Same(phases[1], p)); }
public void CreateDesignTime_Null_CreatesDefaultDesignTimeEngine() { // Arrange // Act var engine = RazorEngine.CreateDesignTime(configure: null); // Assert Assert.IsType <DefaultRazorEngine>(engine); AssertDefaultDesignTimeFeatures(engine.Features); AssertDefaultDesignTimePhases(engine.Phases); AssertDefaultDesignTimeTargetExtensions(engine); }
private DocumentIntermediateNode Lower( RazorCodeDocument codeDocument, Action <IRazorEngineBuilder> builder = null, IEnumerable <TagHelperDescriptor> tagHelpers = null, bool designTime = false) { tagHelpers = tagHelpers ?? new TagHelperDescriptor[0]; Action <IRazorEngineBuilder> configureEngine = b => { builder?.Invoke(b); FunctionsDirective.Register(b); SectionDirective.Register(b); b.AddTagHelpers(tagHelpers); }; var engine = designTime ? RazorEngine.CreateDesignTime(configureEngine) : RazorEngine.Create(configureEngine); for (var i = 0; i < engine.Phases.Count; i++) { var phase = engine.Phases[i]; phase.Execute(codeDocument); if (phase is IRazorIntermediateNodeLoweringPhase) { break; } } var documentNode = codeDocument.GetDocumentIntermediateNode(); Assert.NotNull(documentNode); return(documentNode); }