From 950828cbabfabf6c394ab9c675d2216bbac6a6ab Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Mon, 8 Sep 2014 17:49:21 -0700 Subject: [PATCH] Refactored CodeGeneratorContext to CodeBuilderContext. - Needed to separate the context's of "generation" and "building" to enable the communication of the TagHelperProvider. --- .../CSharpRazorCodeLanguage.cs | 2 +- .../Generator/CodeBuilderContext.cs | 54 +++++++++++++++++++ .../Generator/CodeGeneratorContext.cs | 42 ++++++++------- .../CodeBuilder/CSharp/CSharpCodeBuilder.cs | 2 +- .../CSharp/Visitors/CSharpBaseTypeVisitor.cs | 2 +- .../Visitors/CSharpClassAttributeVisitor.cs | 2 +- .../CSharp/Visitors/CSharpCodeVisitor.cs | 2 +- .../CSharpDesignTimeHelpersVisitor.cs | 2 +- .../CSharp/Visitors/CSharpHelperVisitor.cs | 2 +- .../Visitors/CSharpTypeMemberVisitor.cs | 2 +- .../CSharp/Visitors/CSharpUsingVisitor.cs | 2 +- .../Compiler/CodeBuilder/ChunkVisitor.cs | 4 +- .../Compiler/CodeBuilder/CodeBuilder.cs | 6 +-- .../Compiler/CodeBuilder/CodeVisitor.cs | 2 +- .../Generator/RazorCodeGenerator.cs | 6 ++- .../GeneratorResults.cs | 8 +-- .../RazorCodeLanguage.cs | 2 +- src/Microsoft.AspNet.Razor/RazorEngineHost.cs | 2 +- .../RazorTemplateEngine.cs | 6 +-- .../CSharpRazorCodeLanguageTest.cs | 15 +++--- .../CodeTree/CSharpCodeBuilderTests.cs | 17 ++++-- .../Generator/CodeTree/ChunkVisitorTests.cs | 13 ++--- .../RazorTemplateEngineTest.cs | 18 ++++--- 23 files changed, 145 insertions(+), 68 deletions(-) create mode 100644 src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs diff --git a/src/Microsoft.AspNet.Razor/CSharpRazorCodeLanguage.cs b/src/Microsoft.AspNet.Razor/CSharpRazorCodeLanguage.cs index 3ba7f35bcf..705a1780e9 100644 --- a/src/Microsoft.AspNet.Razor/CSharpRazorCodeLanguage.cs +++ b/src/Microsoft.AspNet.Razor/CSharpRazorCodeLanguage.cs @@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Razor return new CSharpRazorCodeGenerator(className, rootNamespaceName, sourceFileName, host); } - public override CodeBuilder CreateCodeBuilder(CodeGeneratorContext context) + public override CodeBuilder CreateCodeBuilder(CodeBuilderContext context) { return new CSharpCodeBuilder(context); } diff --git a/src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs b/src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs new file mode 100644 index 0000000000..836eccc832 --- /dev/null +++ b/src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNet.Razor.Generator +{ + /// + /// Context object with information used to generate a Razor page. + /// + public class CodeBuilderContext : CodeGeneratorContext + { + /// + /// Instantiates a new instance of the object. + /// + /// A to copy information from. + public CodeBuilderContext(CodeGeneratorContext generatorContext) + : base(generatorContext) + { + ExpressionRenderingMode = ExpressionRenderingMode.WriteToOutput; + } + + // Internal for testing. + internal CodeBuilderContext(RazorEngineHost host, + string className, + string rootNamespace, + string sourceFile, + bool shouldGenerateLinePragmas) + : base(host, className, rootNamespace, sourceFile, shouldGenerateLinePragmas) + { + ExpressionRenderingMode = ExpressionRenderingMode.WriteToOutput; + } + + /// + /// The current C# rendering mode. + /// + /// + /// forces C# generation to write + /// s to the output page, i.e. WriteLiteral("Hello World"). + /// writes values in their + /// rawest form, i.g. "Hello World". + /// + public ExpressionRenderingMode ExpressionRenderingMode { get; set; } + + /// + /// The C# writer to write information to. + /// + /// + /// If is null values will be written using a default write method + /// i.e. WriteLiteral("Hello World"). + /// If is not null values will be written to the given + /// , i.e. WriteLiteralTo(myWriter, "Hello World"). + /// + public string TargetWriterName { get; set; } + } +} \ No newline at end of file diff --git a/src/Microsoft.AspNet.Razor/Generator/CodeGeneratorContext.cs b/src/Microsoft.AspNet.Razor/Generator/CodeGeneratorContext.cs index 5babf29f67..72ef73d7bd 100644 --- a/src/Microsoft.AspNet.Razor/Generator/CodeGeneratorContext.cs +++ b/src/Microsoft.AspNet.Razor/Generator/CodeGeneratorContext.cs @@ -7,37 +7,43 @@ namespace Microsoft.AspNet.Razor.Generator { public class CodeGeneratorContext { - private CodeGeneratorContext() + protected CodeGeneratorContext(CodeGeneratorContext context) + : this(context.Host, + context.ClassName, + context.RootNamespace, + context.SourceFile, + // True because we're pulling from the provided context's source file. + shouldGenerateLinePragmas: true) { - ExpressionRenderingMode = ExpressionRenderingMode.WriteToOutput; + CodeTreeBuilder = context.CodeTreeBuilder; + } + + public CodeGeneratorContext(RazorEngineHost host, + string className, + string rootNamespace, + string sourceFile, + bool shouldGenerateLinePragmas) + { + CodeTreeBuilder = new CodeTreeBuilder(); + Host = host; + SourceFile = shouldGenerateLinePragmas ? sourceFile : null; + RootNamespace = rootNamespace; + ClassName = className; } - // Internal/Private state. Technically consumers might want to use some of these but they can implement them independently if necessary. - // It's way safer to make them internal for now, especially with the code generator stuff in a bit of flux. - internal ExpressionRenderingMode ExpressionRenderingMode { get; set; } public string SourceFile { get; internal set; } + public string RootNamespace { get; private set; } + public string ClassName { get; private set; } + public RazorEngineHost Host { get; private set; } - public string TargetWriterName { get; set; } public CodeTreeBuilder CodeTreeBuilder { get; set; } - /// /// Gets or sets the SHA1 based checksum for the file whose location is defined by . /// public string Checksum { get; set; } - public static CodeGeneratorContext Create(RazorEngineHost host, string className, string rootNamespace, string sourceFile, bool shouldGenerateLinePragmas) - { - return new CodeGeneratorContext() - { - CodeTreeBuilder = new CodeTreeBuilder(), - Host = host, - SourceFile = shouldGenerateLinePragmas ? sourceFile : null, - RootNamespace = rootNamespace, - ClassName = className - }; - } } } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs index 2857915e87..9fea08fa89 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs @@ -14,7 +14,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp private const string Sha1AlgorithmId = "{ff1816ec-aa5e-4d10-87f7-6f4963833460}"; private const int DisableAsyncWarning = 1998; - public CSharpCodeBuilder(CodeGeneratorContext context) + public CSharpCodeBuilder(CodeBuilderContext context) : base(context) { } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpBaseTypeVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpBaseTypeVisitor.cs index 8f00ae39a6..7d6ae08e77 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpBaseTypeVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpBaseTypeVisitor.cs @@ -5,7 +5,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp { public class CSharpBaseTypeVisitor : CodeVisitor { - public CSharpBaseTypeVisitor(CSharpCodeWriter writer, CodeGeneratorContext context) + public CSharpBaseTypeVisitor(CSharpCodeWriter writer, CodeBuilderContext context) : base(writer, context) { } public string CurrentBaseType { get; set; } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpClassAttributeVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpClassAttributeVisitor.cs index 0bcd1977a9..a514ac2eda 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpClassAttributeVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpClassAttributeVisitor.cs @@ -7,7 +7,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp { public class CSharpClassAttributeVisitor : CodeVisitor { - public CSharpClassAttributeVisitor(CSharpCodeWriter writer, CodeGeneratorContext context) + public CSharpClassAttributeVisitor(CSharpCodeWriter writer, CodeBuilderContext context) : base(writer, context) { } protected override void Visit(SessionStateChunk chunk) diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs index de0b0c9d6d..0fb7aae03d 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp private CSharpPaddingBuilder _paddingBuilder; - public CSharpCodeVisitor(CSharpCodeWriter writer, CodeGeneratorContext context) + public CSharpCodeVisitor(CSharpCodeWriter writer, CodeBuilderContext context) : base(writer, context) { _paddingBuilder = new CSharpPaddingBuilder(context.Host); diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs index 347c8e4542..358aa28a83 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs @@ -10,7 +10,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp private const int DisableVariableNamingWarnings = 219; - public CSharpDesignTimeHelpersVisitor(CSharpCodeWriter writer, CodeGeneratorContext context) + public CSharpDesignTimeHelpersVisitor(CSharpCodeWriter writer, CodeBuilderContext context) : base(writer, context) { } public void AcceptTree(CodeTree tree) diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpHelperVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpHelperVisitor.cs index e0f3ee2597..9f4785713e 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpHelperVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpHelperVisitor.cs @@ -11,7 +11,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp private CSharpCodeVisitor _codeVisitor; - public CSharpHelperVisitor(CSharpCodeWriter writer, CodeGeneratorContext context) + public CSharpHelperVisitor(CSharpCodeWriter writer, CodeBuilderContext context) : base(writer, context) { _codeVisitor = new CSharpCodeVisitor(writer, context); diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpTypeMemberVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpTypeMemberVisitor.cs index ee2888fe74..acff74340e 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpTypeMemberVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpTypeMemberVisitor.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp { private CSharpCodeVisitor _csharpCodeVisitor; - public CSharpTypeMemberVisitor(CSharpCodeWriter writer, CodeGeneratorContext context) + public CSharpTypeMemberVisitor(CSharpCodeWriter writer, CodeBuilderContext context) : base(writer, context) { _csharpCodeVisitor = new CSharpCodeVisitor(writer, context); diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpUsingVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpUsingVisitor.cs index b193654ffb..3208ba740e 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpUsingVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpUsingVisitor.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp { public class CSharpUsingVisitor : CodeVisitor { - public CSharpUsingVisitor(CSharpCodeWriter writer, CodeGeneratorContext context) + public CSharpUsingVisitor(CSharpCodeWriter writer, CodeBuilderContext context) : base(writer, context) { ImportedUsings = new List(); diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs index a57d803fe8..595be02fa3 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs @@ -8,14 +8,14 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler { public abstract class ChunkVisitor : IChunkVisitor where T : CodeWriter { - public ChunkVisitor(T writer, CodeGeneratorContext context) + public ChunkVisitor(T writer, CodeBuilderContext context) { Writer = writer; Context = context; } protected T Writer { get; private set; } - protected CodeGeneratorContext Context { get; private set; } + protected CodeBuilderContext Context { get; private set; } public void Accept(IList chunks) { diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeBuilder.cs index ffe56e3815..0dd0653b15 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeBuilder.cs @@ -5,14 +5,14 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler { public abstract class CodeBuilder { - private readonly CodeGeneratorContext _context; + private readonly CodeBuilderContext _context; - public CodeBuilder(CodeGeneratorContext context) + public CodeBuilder(CodeBuilderContext context) { _context = context; } - protected CodeGeneratorContext Context + protected CodeBuilderContext Context { get { return _context; } } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs index 8b8dcc3664..f8536e7486 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs @@ -5,7 +5,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler { public class CodeVisitor : ChunkVisitor where T : CodeWriter { - public CodeVisitor(T writer, CodeGeneratorContext context) + public CodeVisitor(T writer, CodeBuilderContext context) : base(writer, context) { } protected override void Visit(LiteralChunk chunk) diff --git a/src/Microsoft.AspNet.Razor/Generator/RazorCodeGenerator.cs b/src/Microsoft.AspNet.Razor/Generator/RazorCodeGenerator.cs index 7ded170637..5ca1920467 100644 --- a/src/Microsoft.AspNet.Razor/Generator/RazorCodeGenerator.cs +++ b/src/Microsoft.AspNet.Razor/Generator/RazorCodeGenerator.cs @@ -71,7 +71,11 @@ namespace Microsoft.AspNet.Razor.Generator { if (_context == null) { - _context = CodeGeneratorContext.Create(Host, ClassName, RootNamespaceName, SourceFileName, GenerateLinePragmas); + _context = new CodeGeneratorContext(Host, + ClassName, + RootNamespaceName, + SourceFileName, + GenerateLinePragmas); Initialize(_context); } } diff --git a/src/Microsoft.AspNet.Razor/GeneratorResults.cs b/src/Microsoft.AspNet.Razor/GeneratorResults.cs index 38a9faceda..85038be179 100644 --- a/src/Microsoft.AspNet.Razor/GeneratorResults.cs +++ b/src/Microsoft.AspNet.Razor/GeneratorResults.cs @@ -9,9 +9,10 @@ namespace Microsoft.AspNet.Razor { public class GeneratorResults : ParserResults { - public GeneratorResults(ParserResults parserResults, - CodeBuilderResult codeBuilderResult) - : this(parserResults.Document, parserResults.ParserErrors, codeBuilderResult) + public GeneratorResults(ParserResults parserResults, CodeBuilderResult codeBuilderResult) + : this(parserResults.Document, + parserResults.ParserErrors, + codeBuilderResult) { } @@ -33,6 +34,7 @@ namespace Microsoft.AspNet.Razor } public string GeneratedCode { get; private set; } + public IList DesignTimeLineMappings { get; private set; } } } diff --git a/src/Microsoft.AspNet.Razor/RazorCodeLanguage.cs b/src/Microsoft.AspNet.Razor/RazorCodeLanguage.cs index f546328d28..a33066648a 100644 --- a/src/Microsoft.AspNet.Razor/RazorCodeLanguage.cs +++ b/src/Microsoft.AspNet.Razor/RazorCodeLanguage.cs @@ -54,6 +54,6 @@ namespace Microsoft.AspNet.Razor /// public abstract RazorCodeGenerator CreateCodeGenerator(string className, string rootNamespaceName, string sourceFileName, RazorEngineHost host); - public abstract CodeBuilder CreateCodeBuilder(CodeGeneratorContext codeGeneratorContext); + public abstract CodeBuilder CreateCodeBuilder(CodeBuilderContext codeGeneratorContext); } } diff --git a/src/Microsoft.AspNet.Razor/RazorEngineHost.cs b/src/Microsoft.AspNet.Razor/RazorEngineHost.cs index 828a3a9c4a..6a08de75b8 100644 --- a/src/Microsoft.AspNet.Razor/RazorEngineHost.cs +++ b/src/Microsoft.AspNet.Razor/RazorEngineHost.cs @@ -207,7 +207,7 @@ namespace Microsoft.AspNet.Razor /// /// The code builder /// Either the same code builder, after modifications, or a different code builder. - public virtual CodeBuilder DecorateCodeBuilder(CodeBuilder incomingBuilder, CodeGeneratorContext context) + public virtual CodeBuilder DecorateCodeBuilder(CodeBuilder incomingBuilder, CodeBuilderContext context) { if (incomingBuilder == null) { diff --git a/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs b/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs index 2b684f7ef6..8b7aab1e04 100644 --- a/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs +++ b/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs @@ -252,8 +252,8 @@ namespace Microsoft.AspNet.Razor generator.DesignTimeMode = Host.DesignTimeMode; generator.Visit(results); - - var codeGenerationContext = generator.Context; + var codeBuilderContext = new CodeBuilderContext(generator.Context); + var builder = CreateCodeBuilder(codeBuilderContext); codeGenerationContext.Checksum = checksum; var builder = CreateCodeBuilder(codeGenerationContext); @@ -281,7 +281,7 @@ namespace Microsoft.AspNet.Razor }; } - protected internal virtual CodeBuilder CreateCodeBuilder(CodeGeneratorContext context) + protected internal virtual CodeBuilder CreateCodeBuilder(CodeBuilderContext context) { return Host.DecorateCodeBuilder(Host.CodeLanguage.CreateCodeBuilder(context), context); diff --git a/test/Microsoft.AspNet.Razor.Test/CSharpRazorCodeLanguageTest.cs b/test/Microsoft.AspNet.Razor.Test/CSharpRazorCodeLanguageTest.cs index b3d5d0732d..989c532ac0 100644 --- a/test/Microsoft.AspNet.Razor.Test/CSharpRazorCodeLanguageTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/CSharpRazorCodeLanguageTest.cs @@ -48,15 +48,16 @@ namespace Microsoft.AspNet.Razor.Test { // Arrange var language = new CSharpRazorCodeLanguage(); - var host = new RazorEngineHost(language); - var context = CodeGeneratorContext.Create(host, - "myclass", - "myns", - string.Empty, - shouldGenerateLinePragmas: false); + var host = new RazorEngineHost(language); + var codeBuilderContext = new CodeBuilderContext( + host, + "myclass", + "myns", + string.Empty, + shouldGenerateLinePragmas: false); // Act - var generator = language.CreateCodeBuilder(context); + var generator = language.CreateCodeBuilder(codeBuilderContext); // Assert Assert.IsType(generator); diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs index 648a771150..98120e2984 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs @@ -17,15 +17,22 @@ namespace Microsoft.AspNet.Razor.Test.Generator.CodeTree var syntaxTreeNode = new Mock(new SpanBuilder()); var language = new CSharpRazorCodeLanguage(); var host = new RazorEngineHost(language); - var context = CodeGeneratorContext.Create(host, "TestClass", "TestNamespace", "Foo.cs", shouldGenerateLinePragmas: false); - context.CodeTreeBuilder.AddUsingChunk("FakeNamespace1", syntaxTreeNode.Object); - context.CodeTreeBuilder.AddUsingChunk("FakeNamespace2.SubNamespace", syntaxTreeNode.Object); - var codeBuilder = language.CreateCodeBuilder(context); + var codeBuilderContext = new CodeBuilderContext( + host, + "TestClass", + "TestNamespace", + "Foo.cs", + shouldGenerateLinePragmas: false); + codeBuilderContext.CodeTreeBuilder.AddUsingChunk("FakeNamespace1", syntaxTreeNode.Object); + codeBuilderContext.CodeTreeBuilder.AddUsingChunk("FakeNamespace2.SubNamespace", syntaxTreeNode.Object); + var codeBuilder = language.CreateCodeBuilder(codeBuilderContext); // Act var result = codeBuilder.Build(); - BaselineWriter.WriteBaseline(@"test\Microsoft.AspNet.Razor.Test\TestFiles\CodeGenerator\CS\Output\CSharpCodeBuilder.cs", result.Code); + BaselineWriter.WriteBaseline( + @"test\Microsoft.AspNet.Razor.Test\TestFiles\CodeGenerator\CS\Output\CSharpCodeBuilder.cs", + result.Code); var expectedOutput = TestFile.Create("TestFiles/CodeGenerator/CS/Output/CSharpCodeBuilder.cs").ReadAllText(); diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/ChunkVisitorTests.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/ChunkVisitorTests.cs index b387b4e443..e0732c36d9 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/ChunkVisitorTests.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/ChunkVisitorTests.cs @@ -25,13 +25,14 @@ namespace Microsoft.AspNet.Razor private static Mock> CreateVisitor() { - var context = CodeGeneratorContext.Create(new RazorEngineHost(new CSharpRazorCodeLanguage()), - "myclass", - "myns", - string.Empty, - shouldGenerateLinePragmas: false); + var codeBuilderContext = new CodeBuilderContext( + new RazorEngineHost(new CSharpRazorCodeLanguage()), + "myclass", + "myns", + string.Empty, + shouldGenerateLinePragmas: false); var writer = Mock.Of(); - return new Mock>(writer, context); + return new Mock>(writer, codeBuilderContext); } private class MyTestChunk : Chunk diff --git a/test/Microsoft.AspNet.Razor.Test/RazorTemplateEngineTest.cs b/test/Microsoft.AspNet.Razor.Test/RazorTemplateEngineTest.cs index da7ae56d11..de5b09d984 100644 --- a/test/Microsoft.AspNet.Razor.Test/RazorTemplateEngineTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/RazorTemplateEngineTest.cs @@ -114,19 +114,21 @@ namespace Microsoft.AspNet.Razor.Test { // Arrange var mockHost = new Mock(new CSharpRazorCodeLanguage()) { CallBase = true }; - var context = CodeGeneratorContext.Create(mockHost.Object, - "different-class", - "different-ns", - string.Empty, - shouldGenerateLinePragmas: true); - var expected = new CSharpCodeBuilder(context); + var codeBuilderContext = new CodeBuilderContext( + mockHost.Object, + "different-class", + "different-ns", + string.Empty, + shouldGenerateLinePragmas: true); - mockHost.Setup(h => h.DecorateCodeBuilder(It.IsAny(), context)) + var expected = new CSharpCodeBuilder(codeBuilderContext); + + mockHost.Setup(h => h.DecorateCodeBuilder(It.IsAny(), codeBuilderContext)) .Returns(expected); var engine = new RazorTemplateEngine(mockHost.Object); // Act - var actual = engine.CreateCodeBuilder(context); + var actual = engine.CreateCodeBuilder(codeBuilderContext); // Assert Assert.Equal(expected, actual);