public RazorLightDependencyBuilder UseEmbeddedResourcesProject(Type rootType)
        {
            _services.RemoveAll <RazorLightProject>();
            RazorLightProject project = new EmbeddedRazorProject(rootType);

            _services.AddSingleton <RazorLightProject>(project);
            return(this);
        }
        public void Throws_TemplateNotFoundException_If_ProjectItem_NotExist()
        {
            var project  = new EmbeddedRazorProject(typeof(Root).Assembly);
            var compiler = TestRazorTemplateCompiler.Create(project: project);

            Func <Task> task = new Func <Task>(() => compiler.CompileAsync("Not.Existing.Key"));

            Assert.ThrowsAsync <TemplateNotFoundException>(task);
        }
        public async Task Ensure_TemplateKey_IsNormalizedAsync()
        {
            var project = new EmbeddedRazorProject(typeof(Root));

            var item = await project.GetItemAsync(EMPTY_TEMPLATE);

            Assert.NotNull(item);
            Assert.Equal(item.Key, EMPTY_TEMPLATE + project.Extension);
        }
        public void Assembly_IsApplied_OnConstructor_FromRootType()
        {
            var type = typeof(EmbeddedRazorProject);

            var project = new EmbeddedRazorProject(type);

            Assert.NotNull(project.Assembly);
            Assert.Equal(project.Assembly, type.Assembly);
        }
Ejemplo n.º 5
0
        public RazorLightDependencyBuilder UseEmbeddedResourcesProject(Type rootType)
        {
            _services.RemoveAll <RazorLightProject>();
            RazorLightProject project = new EmbeddedRazorProject(rootType);

            // ReSharper disable once RedundantTypeArgumentsOfMethod
            _services.AddSingleton <RazorLightProject>(project);
            return(this);
        }
Ejemplo n.º 6
0
        public void RootType_IsApplied_OnConstructor()
        {
            var type = typeof(EmbeddedRazorProject);

            var project = new EmbeddedRazorProject(type);

            Assert.NotNull(project.RootType);
            Assert.Equal(project.RootType, type);
        }
        public void TemplateKey_NotNormalized_On_NonFileSystemProject()
        {
            string templateKey = "key";
            var    project     = new EmbeddedRazorProject(typeof(Root).Assembly);
            var    compiler    = TestRazorTemplateCompiler.Create(project: project);

            string normalizedKey = compiler.GetNormalizedKey(templateKey);

            Assert.NotNull(normalizedKey);
            Assert.Equal(templateKey, normalizedKey);
        }
        public async Task Ensure_TemplateIsCompiled_ForExisting_ProjectItem()
        {
            var project  = new EmbeddedRazorProject(typeof(Root).Assembly, "Assets.Embedded");
            var compiler = TestRazorTemplateCompiler.Create(project: project);

            string templateKey = "Empty.cshtml";
            var    result      = await compiler.CompileAsync(templateKey);

            Assert.NotNull(result);
            Assert.NotNull(result.TemplateAttribute.TemplateType);
            Assert.Equal(result.TemplateKey, templateKey);
            Assert.False(result.IsPrecompiled);
        }
        public async Task Ensure_TemplateNotFoundException_KnownKeys_Null_When_EnableDebugMode_False()
        {
            var options = new RazorLightOptions {
                EnableDebugMode = false
            };
            var project  = new EmbeddedRazorProject(typeof(Root));
            var compiler = TestRazorTemplateCompiler.Create(options, project);
            var item     = new EmbeddedRazorProjectItem(typeof(Root), "Any.Key");

            var exception = await compiler.CreateTemplateNotFoundException(item);

            Assert.Null(exception.KnownDynamicTemplateKeys);
            Assert.Null(exception.KnownProjectTemplateKeys);
        }
Ejemplo n.º 10
0
        public async Task Ensure_GetKnownKeysAsync_Returns_Existing_Keys()
        {
            var project = new EmbeddedRazorProject(typeof(Root));

            var knownKeys = await project.GetKnownKeysAsync();

            Assert.NotNull(knownKeys);
            Assert.True(knownKeys.Count() > 0);

            foreach (var key in knownKeys)
            {
                var projectItem = await project.GetItemAsync(key);

                Assert.True(projectItem.Exists);
            }
        }
Ejemplo n.º 11
0
        public async Task Ensure_GetKnownKeysAsync_Returns_Existing_Keys_When_RootNamespace_Set()
        {
            var project = new EmbeddedRazorProject(typeof(Root).Assembly, "RazorLight.Tests.Assets.Embedded");

            var knownKeys = await project.GetKnownKeysAsync();

            Assert.NotNull(knownKeys);
            Assert.True(knownKeys.Count() > 0);

            foreach (var key in knownKeys)
            {
                var projectItem = await project.GetItemAsync(key);

                Assert.True(projectItem.Exists);
            }
        }
        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 async Task Ensure_TemplateNotFoundException_KnownDynamicTemplateKeys_Exist_When_EnableDebugMode_True()
        {
            var dynamicTemplateKeys = new[] { "dynamicKey1", "dynamicKey2" };

            var project = new EmbeddedRazorProject(typeof(Root).Assembly, "RazorLight.Tests.Assets.Embedded");
            var options = new RazorLightOptions {
                EnableDebugMode = true
            };

            foreach (var dynamicKey in dynamicTemplateKeys)
            {
                options.DynamicTemplates.Add(dynamicKey, "Content");
            }
            var compiler = TestRazorTemplateCompiler.Create(options, project);
            var item     = new EmbeddedRazorProjectItem(typeof(Root), "Any.Key");

            var exception = await compiler.CreateTemplateNotFoundException(item);

            Assert.NotNull(exception.KnownDynamicTemplateKeys);
            Assert.Equal(dynamicTemplateKeys.OrderBy(x => x), exception.KnownDynamicTemplateKeys.OrderBy(x => x));
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Creates RazorLightEngine with a embedded resource razor project
        /// </summary>
        /// <param name="rootType">Type of the root.</param>
        /// <param name="options">Engine options</param>
        /// <returns>Instance of RazorLightEngine</returns>
        public virtual RazorLightEngine ForEmbeddedResources(Type rootType, RazorLightOptions options)
        {
            var project = new EmbeddedRazorProject(rootType);

            return(Create(project, options));
        }
        public void Ensure_Throws_OnNullTemplateKey()
        {
            var project = new EmbeddedRazorProject(typeof(EmbeddedRazorProject));

            Assert.ThrowsAsync <ArgumentNullException>(async() => { await project.GetItemAsync(null); });
        }