public void GetInheritedChunks_ReturnsEmptySequenceIfNoGlobalsArePresent() { // Arrange var fileProvider = new TestFileProvider(); fileProvider.AddFile(@"_GlobalImport.cs", string.Empty); fileProvider.AddFile(@"Views\_Layout.cshtml", string.Empty); fileProvider.AddFile(@"Views\home\_not-globalimport.cshtml", string.Empty); var cache = new DefaultCodeTreeCache(fileProvider); var host = new MvcRazorHost(cache); var defaultChunks = new Chunk[] { new InjectChunk("MyTestHtmlHelper", "Html"), new UsingChunk { Namespace = "AppNamespace.Model" }, }; var utility = new ChunkInheritanceUtility(host, cache, defaultChunks); // Act var codeTrees = utility.GetInheritedCodeTrees(@"Views\home\Index.cshtml"); // Assert Assert.Empty(codeTrees); }
public void GetInheritedChunks_ReadsChunksFromGlobalFilesInPath() { // Arrange var fileProvider = new TestFileProvider(); fileProvider.AddFile(@"Views\accounts\_GlobalImport.cshtml", "@using AccountModels"); fileProvider.AddFile(@"Views\Shared\_GlobalImport.cshtml", "@inject SharedHelper Shared"); fileProvider.AddFile(@"Views\home\_GlobalImport.cshtml", "@using MyNamespace"); fileProvider.AddFile(@"Views\_GlobalImport.cshtml", @"@inject MyHelper<TModel> Helper @inherits MyBaseType @{ Layout = ""test.cshtml""; } "); var defaultChunks = new Chunk[] { new InjectChunk("MyTestHtmlHelper", "Html"), new UsingChunk { Namespace = "AppNamespace.Model" }, }; var cache = new DefaultCodeTreeCache(fileProvider); var host = new MvcRazorHost(cache); var utility = new ChunkInheritanceUtility(host, cache, defaultChunks); // Act var codeTrees = utility.GetInheritedCodeTrees(@"Views\home\Index.cshtml"); // Assert Assert.Equal(2, codeTrees.Count); var viewStartChunks = codeTrees[0].Chunks; Assert.Equal(3, viewStartChunks.Count); Assert.IsType <LiteralChunk>(viewStartChunks[0]); var usingChunk = Assert.IsType <UsingChunk>(viewStartChunks[1]); Assert.Equal("MyNamespace", usingChunk.Namespace); Assert.IsType <LiteralChunk>(viewStartChunks[2]); viewStartChunks = codeTrees[1].Chunks; Assert.Equal(5, viewStartChunks.Count); Assert.IsType <LiteralChunk>(viewStartChunks[0]); var injectChunk = Assert.IsType <InjectChunk>(viewStartChunks[1]); Assert.Equal("MyHelper<TModel>", injectChunk.TypeName); Assert.Equal("Helper", injectChunk.MemberName); var setBaseTypeChunk = Assert.IsType <SetBaseTypeChunk>(viewStartChunks[2]); Assert.Equal("MyBaseType", setBaseTypeChunk.TypeName); Assert.IsType <StatementChunk>(viewStartChunks[3]); Assert.IsType <LiteralChunk>(viewStartChunks[4]); }
public void GetInheritedChunks_ReadsChunksFromGlobalFilesInPath() { // Arrange var fileProvider = new TestFileProvider(); fileProvider.AddFile(@"Views\accounts\_GlobalImport.cshtml", "@using AccountModels"); fileProvider.AddFile(@"Views\Shared\_GlobalImport.cshtml", "@inject SharedHelper Shared"); fileProvider.AddFile(@"Views\home\_GlobalImport.cshtml", "@using MyNamespace"); fileProvider.AddFile(@"Views\_GlobalImport.cshtml", @"@inject MyHelper<TModel> Helper @inherits MyBaseType @{ Layout = ""test.cshtml""; } "); var defaultChunks = new Chunk[] { new InjectChunk("MyTestHtmlHelper", "Html"), new UsingChunk { Namespace = "AppNamespace.Model" }, }; var cache = new DefaultCodeTreeCache(fileProvider); var host = new MvcRazorHost(cache); var utility = new ChunkInheritanceUtility(host, cache, defaultChunks); // Act var codeTrees = utility.GetInheritedCodeTrees(@"Views\home\Index.cshtml"); // Assert Assert.Equal(2, codeTrees.Count); var viewStartChunks = codeTrees[0].Chunks; Assert.Equal(3, viewStartChunks.Count); Assert.IsType<LiteralChunk>(viewStartChunks[0]); var usingChunk = Assert.IsType<UsingChunk>(viewStartChunks[1]); Assert.Equal("MyNamespace", usingChunk.Namespace); Assert.IsType<LiteralChunk>(viewStartChunks[2]); viewStartChunks = codeTrees[1].Chunks; Assert.Equal(5, viewStartChunks.Count); Assert.IsType<LiteralChunk>(viewStartChunks[0]); var injectChunk = Assert.IsType<InjectChunk>(viewStartChunks[1]); Assert.Equal("MyHelper<TModel>", injectChunk.TypeName); Assert.Equal("Helper", injectChunk.MemberName); var setBaseTypeChunk = Assert.IsType<SetBaseTypeChunk>(viewStartChunks[2]); Assert.Equal("MyBaseType", setBaseTypeChunk.TypeName); Assert.IsType<StatementChunk>(viewStartChunks[3]); Assert.IsType<LiteralChunk>(viewStartChunks[4]); }
public void GetInheritedChunks_ReturnsEmptySequenceIfNoGlobalsArePresent() { // Arrange var fileProvider = new TestFileProvider(); fileProvider.AddFile(@"_GlobalImport.cs", string.Empty); fileProvider.AddFile(@"Views\_Layout.cshtml", string.Empty); fileProvider.AddFile(@"Views\home\_not-globalimport.cshtml", string.Empty); var cache = new DefaultCodeTreeCache(fileProvider); var host = new MvcRazorHost(cache); var defaultChunks = new Chunk[] { new InjectChunk("MyTestHtmlHelper", "Html"), new UsingChunk { Namespace = "AppNamespace.Model" }, }; var utility = new ChunkInheritanceUtility(host, cache, defaultChunks); // Act var codeTrees = utility.GetInheritedCodeTrees(@"Views\home\Index.cshtml"); // Assert Assert.Empty(codeTrees); }