diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorTemplateEngine.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorTemplateEngine.cs index 62bee58376..5717db117d 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorTemplateEngine.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorTemplateEngine.cs @@ -182,12 +182,6 @@ namespace Microsoft.AspNetCore.Razor.Language { throw new ArgumentNullException(nameof(projectItem)); } - - if (!projectItem.Exists) - { - throw new InvalidOperationException(Resources.FormatRazorTemplateEngine_ItemCouldNotBeFound(projectItem.Path)); - } - var result = new List(); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs index 75ca3e4acf..442d0b4b25 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs @@ -11,6 +11,53 @@ namespace Microsoft.AspNetCore.Razor.Language { public class RazorTemplateEngineTest { + [Fact] + public void GetImports_CanQueryInformationOnNonExistentFileWithoutImports() + { + // Arrange + var project = new TestRazorProject(); + var razorEngine = RazorEngine.Create(); + var templateEngine = new RazorTemplateEngine(razorEngine, project) + { + Options = + { + ImportsFileName = "MyImport.cshtml" + } + }; + var projectItemToQuery = project.GetItem("/Views/Home/Index.cshtml"); + + // Act + var imports = templateEngine.GetImports(projectItemToQuery); + + // Assert + Assert.Empty(imports); + } + + [Fact] + public void GetImports_CanQueryInformationOnNonExistentFileWithImports() + { + // Arrange + var path = "/Views/Home/MyImport.cshtml"; + var projectItem = new TestRazorProjectItem(path); + var project = new TestRazorProject(new[] { projectItem }); + var razorEngine = RazorEngine.Create(); + var templateEngine = new RazorTemplateEngine(razorEngine, project) + { + Options = + { + ImportsFileName = "MyImport.cshtml" + } + }; + var projectItemToQuery = project.GetItem("/Views/Home/Index.cshtml"); + + // Act + var imports = templateEngine.GetImports(projectItemToQuery); + + // Assert + var import = Assert.Single(imports); + Assert.Equal(projectItem.Path, import.FileName); + } + [Fact] public void GenerateCode_ThrowsIfItemCannotBeFound() {