public void Throws_WhenCantResolve_DependencyLibraries() { var manager = new DefaultMetadataReferenceManager(); IReadOnlyList <CompilationLibrary> a = new List <CompilationLibrary>(); Shim classPropShim = Shim.Replace(() => Is.A <DependencyContext>().CompileLibraries).With((DependencyContext @this) => a); Exception ex = null; try { PoseContext.Isolate(() => { manager.Resolve(DependencyContext.Default); }, classPropShim); } catch (Exception e) { ex = e.InnerException; } Assert.NotNull(ex); Assert.NotNull(ex.Message); Assert.Equal(ex.Message, "Can't load metadata reference from the entry assembly. " + "Make sure PreserveCompilationContext is set to true in *.csproj file"); }
public virtual RazorLightEngine Build() { var options = new RazorLightOptions(); if (namespaces != null) { options.Namespaces = namespaces; } if (dynamicTemplates != null) { options.DynamicTemplates = dynamicTemplates; } if (metadataReferences != null) { options.AdditionalMetadataReferences = metadataReferences; } if (prerenderCallbacks != null) { options.PreRenderCallbacks = prerenderCallbacks; } var sourceGenerator = new RazorSourceGenerator(DefaultRazorEngine.Instance, project, options.Namespaces); var metadataReferenceManager = new DefaultMetadataReferenceManager(options.AdditionalMetadataReferences); var assembly = operatingAssembly ?? Assembly.GetEntryAssembly(); var compiler = new RoslynCompilationService(metadataReferenceManager, assembly); var templateFactoryProvider = new TemplateFactoryProvider(sourceGenerator, compiler, options); return(new RazorLightEngine(options, templateFactoryProvider, cachingProvider)); }
public void Ensure_AdditionalMetadata_IsApplied() { var metadata = new HashSet <MetadataReference>(); var manager = new DefaultMetadataReferenceManager(metadata); Assert.NotNull(manager.AdditionalMetadataReferences); Assert.Equal(metadata, manager.AdditionalMetadataReferences); }
private TemplateFactoryProvider GetProvider() { var sourceGenerator = new RazorSourceGenerator(DefaultRazorEngine.Instance, project); var metadataReferences = new DefaultMetadataReferenceManager(); var compiler = new RoslynCompilationService(metadataReferences, Assembly.GetEntryAssembly()); var provider = new TemplateFactoryProvider(sourceGenerator, compiler, new RazorLightOptions()); return(provider); }
public static TestRazorTemplateCompiler Create(RazorLightOptions options = null, RazorLightProject project = null) { var razorOptions = options ?? new RazorLightOptions(); var metatadaManager = new DefaultMetadataReferenceManager(); var assembly = Assembly.GetCallingAssembly(); var razorProject = project ?? new EmbeddedRazorProject(assembly); var compilerService = new RoslynCompilationService(metatadaManager, assembly); var generator = new RazorSourceGenerator(DefaultRazorEngine.Instance, razorProject); return(new TestRazorTemplateCompiler(generator, compilerService, razorProject, razorOptions)); }
/// <summary> ///Creates RazorLightEngine with a custom RazorLightProject /// </summary> /// <param name="project">The project</param> /// <returns>Instance of RazorLightEngine</returns> public virtual RazorLightEngine Create(RazorLightProject project, RazorLightOptions options = null) { var razorOptions = options ?? new RazorLightOptions(); var sourceGenerator = new RazorSourceGenerator(DefaultRazorEngine.Instance, project, razorOptions.Namespaces); var metadataReferenceManager = new DefaultMetadataReferenceManager(razorOptions.AdditionalMetadataReferences); var compiler = new RoslynCompilationService(metadataReferenceManager, Assembly.GetEntryAssembly()); var templateFactoryProvider = new TemplateFactoryProvider(sourceGenerator, compiler, razorOptions); ICachingProvider cacheProvider = new MemoryCachingProvider(); return(new RazorLightEngine(razorOptions, templateFactoryProvider, cacheProvider)); }
public void Ensure_Throws_OnNull_Constructor_Dependencies() { var options = new RazorLightOptions(); var metadataManager = new DefaultMetadataReferenceManager(); var assembly = Assembly.GetCallingAssembly(); var project = new EmbeddedRazorProject(assembly); var compilerService = new RoslynCompilationService(metadataManager, assembly); var generator = new RazorSourceGenerator(DefaultRazorEngine.Instance, project); Action p1 = new Action(() => { new RazorTemplateCompiler(null, compilerService, project, options); }); Action p2 = new Action(() => { new RazorTemplateCompiler(generator, null, project, options); }); Action p3 = new Action(() => { new RazorTemplateCompiler(generator, compilerService, null, options); }); Action p4 = new Action(() => { new RazorTemplateCompiler(generator, compilerService, project, null); }); Assert.Throws <ArgumentNullException>(p1); Assert.Throws <ArgumentNullException>(p2); Assert.Throws <ArgumentNullException>(p3); Assert.Throws <ArgumentNullException>(p4); }
public virtual RazorLightEngine Build() { options = options ?? new RazorLightOptions(); project = project ?? new NoRazorProject(); if (namespaces != null) { if (namespaces.Count > 0 && options.Namespaces.Count > 0) { ThrowIfHasBeenSetExplicitly(nameof(namespaces)); } options.Namespaces = namespaces; } if (dynamicTemplates != null) { if (dynamicTemplates.Count > 0 && options.DynamicTemplates.Count > 0) { ThrowIfHasBeenSetExplicitly(nameof(dynamicTemplates)); } options.DynamicTemplates = dynamicTemplates; } if (metadataReferences != null) { if (metadataReferences.Count > 0 && options.AdditionalMetadataReferences.Count > 0) { ThrowIfHasBeenSetExplicitly(nameof(metadataReferences)); } options.AdditionalMetadataReferences = metadataReferences; } if (excludedAssemblies != null) { if (excludedAssemblies.Count > 0 && options.ExcludedAssemblies.Count > 0) { ThrowIfHasBeenSetExplicitly(nameof(excludedAssemblies)); } options.ExcludedAssemblies = excludedAssemblies; } if (prerenderCallbacks != null) { if (prerenderCallbacks.Count > 0 && options.PreRenderCallbacks.Count > 0) { ThrowIfHasBeenSetExplicitly(nameof(prerenderCallbacks)); } options.PreRenderCallbacks = prerenderCallbacks; } if (cachingProvider != null) { if (options.CachingProvider != null) { ThrowIfHasBeenSetExplicitly(nameof(cachingProvider)); } options.CachingProvider = cachingProvider; } if (disableEncoding.HasValue) { if (options.DisableEncoding != null) { ThrowIfHasBeenSetExplicitly(nameof(disableEncoding)); } options.DisableEncoding = options.DisableEncoding ?? disableEncoding ?? false; } else { if (!options.DisableEncoding.HasValue) { options.DisableEncoding = false; } } if (enableDebugMode.HasValue && options.EnableDebugMode.HasValue) { ThrowIfHasBeenSetExplicitly(nameof(enableDebugMode)); } else { options.EnableDebugMode = options.EnableDebugMode ?? enableDebugMode ?? false; } var metadataReferenceManager = new DefaultMetadataReferenceManager(options.AdditionalMetadataReferences, options.ExcludedAssemblies); var assembly = operatingAssembly ?? Assembly.GetEntryAssembly(); var compiler = new RoslynCompilationService(metadataReferenceManager, assembly); var sourceGenerator = new RazorSourceGenerator(DefaultRazorEngine.Instance, project, options.Namespaces); var templateCompiler = new RazorTemplateCompiler(sourceGenerator, compiler, project, options); var templateFactoryProvider = new TemplateFactoryProvider(); var engineHandler = new EngineHandler(options, templateCompiler, templateFactoryProvider, cachingProvider); return(new RazorLightEngine(engineHandler)); }
public void Throws_OnEmptyManager_InConstructor() { Assert.Throws <ArgumentNullException>(() => { _ = new DefaultMetadataReferenceManager(null as HashSet <MetadataReference>, null); }); }