public void ModelVisitor_GeneratesLineMappingsForLastModel_WhenMultipleModelsArePresent() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; host.NamespaceImports.Clear(); var inputFile = "TestFiles/Input/MultipleModels.cshtml"; var outputFile = "TestFiles/Output/DesignTime/MultipleModels.cs"; var expectedCode = ResourceFile.ReadResource(_assembly, outputFile, sourceFile: false); // Act GeneratorResults results; using (var stream = ResourceFile.GetResourceStream(_assembly, inputFile, sourceFile: true)) { results = host.GenerateCode(inputFile, stream); } // Assert Assert.False(results.Success); var parserError = Assert.Single(results.ParserErrors); Assert.Equal("Only one 'model' statement is allowed in a file.", parserError.Message); #if GENERATE_BASELINES ResourceFile.UpdateFile(_assembly, outputFile, expectedCode, results.GeneratedCode); #else Assert.Equal(expectedCode, results.GeneratedCode, ignoreLineEndingDifferences: true); #endif }
public void BasicVisitor_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 13, documentLineIndex: 0, documentCharacterIndex: 13, generatedAbsoluteIndex: 1499, generatedLineIndex: 34, generatedCharacterIndex: 13, contentLength: 4), BuildLineMapping( documentAbsoluteIndex: 43, documentLineIndex: 2, documentCharacterIndex: 5, generatedAbsoluteIndex: 1583, generatedLineIndex: 39, generatedCharacterIndex: 6, contentLength: 21), }; // Act and Assert RunDesignTimeTest(host, "Basic", expectedLineMappings); }
public void MvcRazorHost_GeneratesCorrectLineMappingsAndUsingStatementsForViewImports() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 8, documentLineIndex: 0, documentCharacterIndex: 8, generatedAbsoluteIndex: 661, generatedLineIndex: 21, generatedCharacterIndex: 8, contentLength: 26), }; // Act and Assert RunDesignTimeTest(host, "_ViewImports", expectedLineMappings); }
public void ModelVisitor_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 394, generatedLineIndex: 11, generatedCharacterIndex: 28, contentLength: 30), }; // Act and Assert RunDesignTimeTest(host, "Model", expectedLineMappings); }
public void BasicVisitor_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 13, documentLineIndex: 0, documentCharacterIndex: 13, generatedAbsoluteIndex: 1492, generatedLineIndex: 34, generatedCharacterIndex: 13, contentLength: 4), BuildLineMapping( documentAbsoluteIndex: 43, documentLineIndex: 2, documentCharacterIndex: 5, generatedAbsoluteIndex: 1576, generatedLineIndex: 39, generatedCharacterIndex: 6, contentLength: 21), }; // Act and Assert RunDesignTimeTest(host, "Basic", expectedLineMappings); } }
public void InjectVisitorWithSemicolon_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 398, generatedLineIndex: 11, generatedCharacterIndex: 28, contentLength: 7), BuildLineMapping( documentAbsoluteIndex: 24, documentLineIndex: 1, documentCharacterIndex: 8, generatedAbsoluteIndex: 769, generatedLineIndex: 25, generatedCharacterIndex: 8, contentLength: 20), BuildLineMapping( documentAbsoluteIndex: 58, documentLineIndex: 2, documentCharacterIndex: 8, generatedAbsoluteIndex: 1003, generatedLineIndex: 33, generatedCharacterIndex: 8, contentLength: 23), BuildLineMapping( documentAbsoluteIndex: 93, documentLineIndex: 3, documentCharacterIndex: 8, generatedAbsoluteIndex: 1240, generatedLineIndex: 41, generatedCharacterIndex: 8, contentLength: 21), BuildLineMapping( documentAbsoluteIndex: 129, documentLineIndex: 4, documentCharacterIndex: 8, generatedAbsoluteIndex: 1475, generatedLineIndex: 49, generatedCharacterIndex: 8, contentLength: 24), }; // Act and Assert RunDesignTimeTest(host, "InjectWithSemicolon", expectedLineMappings); } }
public void MvcRazorHost_GeneratesTagHelperModelExpressionCode_DesignTime() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 33, documentLineIndex: 2, documentCharacterIndex: 14, generatedAbsoluteIndex: 647, generatedLineIndex: 17, generatedCharacterIndex: 48, contentLength: 91), BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 829, generatedLineIndex: 19, generatedCharacterIndex: 28, contentLength: 8), BuildLineMapping( documentAbsoluteIndex: 145, documentLineIndex: 4, documentCharacterIndex: 17, generatedAbsoluteIndex: 2523, generatedLineIndex: 50, generatedCharacterIndex: 133, contentLength: 3), BuildLineMapping( documentAbsoluteIndex: 172, documentLineIndex: 5, documentCharacterIndex: 18, generatedAbsoluteIndex: 2890, generatedLineIndex: 56, generatedCharacterIndex: 125, contentLength: 5), }; // Act and Assert RunDesignTimeTest( host, testName: "ModelExpressionTagHelper", expectedLineMappings: expectedLineMappings); } }
public void MvcRazorHost_GeneratesTagHelperModelExpressionCode_DesignTime() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; var expectedLineMappings = new List <LineMapping> { BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 432, generatedLineIndex: 12, generatedCharacterIndex: 7, contentLength: 8), BuildLineMapping( documentAbsoluteIndex: 31, documentLineIndex: 2, documentCharacterIndex: 14, generatedAbsoluteIndex: 798, generatedLineIndex: 25, generatedCharacterIndex: 14, contentLength: 85), BuildLineMapping( documentAbsoluteIndex: 135, documentLineIndex: 4, documentCharacterIndex: 17, generatedAbsoluteIndex: 2258, generatedLineIndex: 55, generatedCharacterIndex: 95, contentLength: 3), BuildLineMapping( documentAbsoluteIndex: 161, documentLineIndex: 5, documentCharacterIndex: 18, generatedAbsoluteIndex: 2565, generatedLineIndex: 61, generatedCharacterIndex: 87, contentLength: 5), }; // Act and Assert RunDesignTimeTest(host, testName: "ModelExpressionTagHelper", expectedLineMappings: expectedLineMappings); }
public void ModelVisitor_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping(7, 0, 7, 188, 6, 7, 30), }; // Act and Assert RunDesignTimeTest(host, "Model", expectedLineMappings); }
public void ModelVisitor_GeneratesLineMappingsForLastModel_WhenMultipleModelsArePresent() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { host.NamespaceImports.Clear(); var inputFile = "TestFiles/Input/MultipleModels.cshtml"; var outputFile = "TestFiles/Output/DesignTime/MultipleModels.cs"; var expectedCode = ResourceFile.ReadResource(_assembly, outputFile, sourceFile: false); // Act GeneratorResults results; using (var stream = ResourceFile.GetResourceStream(_assembly, inputFile, sourceFile: true)) { results = host.GenerateCode(inputFile, stream); } // Assert Assert.False(results.Success); var parserError = Assert.Single(results.ParserErrors); Assert.Equal("Only one 'model' statement is allowed in a file.", parserError.Message); #if GENERATE_BASELINES ResourceFile.UpdateFile(_assembly, outputFile, expectedCode, results.GeneratedCode); #else Assert.Equal(expectedCode, results.GeneratedCode, ignoreLineEndingDifferences: true); #endif } }
public void ModelVisitor_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 394, generatedLineIndex: 11, generatedCharacterIndex: 28, contentLength: 30), }; // Act and Assert RunDesignTimeTest(host, "Model", expectedLineMappings); } }
public void InjectVisitorWithSemicolon_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 399, generatedLineIndex: 11, generatedCharacterIndex: 28, contentLength: 7), BuildLineMapping( documentAbsoluteIndex: 24, documentLineIndex: 1, documentCharacterIndex: 8, generatedAbsoluteIndex: 771, generatedLineIndex: 25, generatedCharacterIndex: 8, contentLength: 20), BuildLineMapping( documentAbsoluteIndex: 58, documentLineIndex: 2, documentCharacterIndex: 8, generatedAbsoluteIndex: 1001, generatedLineIndex: 33, generatedCharacterIndex: 8, contentLength: 23), BuildLineMapping( documentAbsoluteIndex: 93, documentLineIndex: 3, documentCharacterIndex: 8, generatedAbsoluteIndex: 1234, generatedLineIndex: 41, generatedCharacterIndex: 8, contentLength: 21), BuildLineMapping( documentAbsoluteIndex: 129, documentLineIndex: 4, documentCharacterIndex: 8, generatedAbsoluteIndex: 1465, generatedLineIndex: 49, generatedCharacterIndex: 8, contentLength: 24), }; // Act and Assert RunDesignTimeTest(host, "InjectWithSemicolon", expectedLineMappings); } }
public void MvcRazorHost_GeneratesCorrectLineMappingsAndUsingStatementsForViewImports() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 8, documentLineIndex: 0, documentCharacterIndex: 8, generatedAbsoluteIndex: 661, generatedLineIndex: 21, generatedCharacterIndex: 8, contentLength: 26), }; // Act and Assert RunDesignTimeTest(host, "_ViewImports", expectedLineMappings); } }
public void MvcRazorHost_GeneratesTagHelperModelExpressionCode_DesignTime() { // Arrange var fileProvider = new TestFileProvider(); using (var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }) { var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 33, documentLineIndex: 2, documentCharacterIndex: 14, generatedAbsoluteIndex: 590, generatedLineIndex: 16, generatedCharacterIndex: 48, contentLength: 83), BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 764, generatedLineIndex: 18, generatedCharacterIndex: 28, contentLength: 8), BuildLineMapping( documentAbsoluteIndex: 137, documentLineIndex: 4, documentCharacterIndex: 17, generatedAbsoluteIndex: 2180, generatedLineIndex: 47, generatedCharacterIndex: 95, contentLength: 3), BuildLineMapping( documentAbsoluteIndex: 164, documentLineIndex: 5, documentCharacterIndex: 18, generatedAbsoluteIndex: 2501, generatedLineIndex: 53, generatedCharacterIndex: 87, contentLength: 5), }; // Act and Assert RunDesignTimeTest( host, testName: "ModelExpressionTagHelper", expectedLineMappings: expectedLineMappings); } }
public void MvcRazorHost_GeneratesTagHelperModelExpressionCode_DesignTime() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; var expectedLineMappings = new List<LineMapping> { BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 432, generatedLineIndex: 12, generatedCharacterIndex: 7, contentLength: 8), BuildLineMapping( documentAbsoluteIndex: 31, documentLineIndex: 2, documentCharacterIndex: 14, generatedAbsoluteIndex: 798, generatedLineIndex: 25, generatedCharacterIndex: 14, contentLength: 85), BuildLineMapping( documentAbsoluteIndex: 135, documentLineIndex: 4, documentCharacterIndex: 17, generatedAbsoluteIndex: 2258, generatedLineIndex: 55, generatedCharacterIndex: 95, contentLength: 3), BuildLineMapping( documentAbsoluteIndex: 161, documentLineIndex: 5, documentCharacterIndex: 18, generatedAbsoluteIndex: 2565, generatedLineIndex: 61, generatedCharacterIndex: 87, contentLength: 5), }; // Act and Assert RunDesignTimeTest(host, testName: "ModelExpressionTagHelper", expectedLineMappings: expectedLineMappings); }
public void ModelVisitor_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping(7, 0, 7, 194, 6, 7, 30), }; // Act and Assert RunDesignTimeTest(host, "Model", expectedLineMappings); }
public void InjectVisitorWithModel_GeneratesCorrectLineMappings() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; host.NamespaceImports.Clear(); var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 214, generatedLineIndex: 6, generatedCharacterIndex: 7, contentLength: 7), BuildLineMapping( documentAbsoluteIndex: 24, documentLineIndex: 1, documentCharacterIndex: 8, generatedAbsoluteIndex: 731, generatedLineIndex: 26, generatedCharacterIndex: 8, contentLength: 20), BuildLineMapping( documentAbsoluteIndex: 54, documentLineIndex: 2, documentCharacterIndex: 8, generatedAbsoluteIndex: 957, generatedLineIndex: 34, generatedCharacterIndex: 8, contentLength: 23), }; // Act and Assert RunDesignTimeTest(host, "InjectWithModel", expectedLineMappings); }
public void MvcRazorHost_GeneratesTagHelperModelExpressionCode_DesignTime() { // Arrange var fileProvider = new TestFileProvider(); var host = new MvcRazorHostWithNormalizedNewLine(new DefaultChunkTreeCache(fileProvider)) { DesignTimeMode = true }; var expectedLineMappings = new[] { BuildLineMapping( documentAbsoluteIndex: 33, documentLineIndex: 2, documentCharacterIndex: 14, generatedAbsoluteIndex: 654, generatedLineIndex: 17, generatedCharacterIndex: 48, contentLength: 91), BuildLineMapping( documentAbsoluteIndex: 140, documentLineIndex: 3, documentCharacterIndex: 14, generatedAbsoluteIndex: 797, generatedLineIndex: 18, generatedCharacterIndex: 48, contentLength: 102), BuildLineMapping( documentAbsoluteIndex: 7, documentLineIndex: 0, documentCharacterIndex: 7, generatedAbsoluteIndex: 990, generatedLineIndex: 20, generatedCharacterIndex: 28, contentLength: 8), BuildLineMapping( documentAbsoluteIndex: 263, documentLineIndex: 5, documentCharacterIndex: 17, generatedAbsoluteIndex: 2841, generatedLineIndex: 52, generatedCharacterIndex: 133, contentLength: 3), BuildLineMapping( documentAbsoluteIndex: 290, documentLineIndex: 6, documentCharacterIndex: 18, generatedAbsoluteIndex: 3208, generatedLineIndex: 58, generatedCharacterIndex: 125, contentLength: 5), BuildLineMapping( documentAbsoluteIndex: 322, documentLineIndex: 8, documentCharacterIndex: 19, generatedAbsoluteIndex: 3627, generatedLineIndex: 64, generatedCharacterIndex: 153, contentLength: 5), BuildLineMapping( documentAbsoluteIndex: 357, documentLineIndex: 9, documentCharacterIndex: 19, generatedAbsoluteIndex: 4055, generatedLineIndex: 70, generatedCharacterIndex: 161, contentLength: 4), BuildLineMapping( documentAbsoluteIndex: 378, documentLineIndex: 9, documentCharacterIndex: 40, generatedAbsoluteIndex: 4317, generatedLineIndex: 75, generatedCharacterIndex: 163, contentLength: 6), }; // Act and Assert RunDesignTimeTest( host, testName: "ModelExpressionTagHelper", expectedLineMappings: expectedLineMappings); }