当前位置: 首页>>代码示例>>C#>>正文


C# Span.Zip方法代码示例

本文整理汇总了C#中System.Web.Razor.Parser.SyntaxTree.Span.Zip方法的典型用法代码示例。如果您正苦于以下问题:C# Span.Zip方法的具体用法?C# Span.Zip怎么用?C# Span.Zip使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Web.Razor.Parser.SyntaxTree.Span的用法示例。


在下文中一共展示了Span.Zip方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ParseModelKeyword_ErrorOnInheritsFollowedByModel

        public void ParseModelKeyword_ErrorOnInheritsFollowedByModel()
        {
            // Arrange + Act
            List<RazorError> errors = new List<RazorError>();
            var document =
                @"@inherits Bar
@model Foo";
            var spans = ParseDocument(document, errors);

            // Assert
            var factory = SpanFactory.CreateCsHtml();
            var expectedSpans = new Span[]
            {
                factory.EmptyHtml(),
                factory.CodeTransition(SyntaxConstants.TransitionString)
                    .Accepts(AcceptedCharacters.None),
                factory.MetaCode("inherits ")
                    .Accepts(AcceptedCharacters.None),
                factory.Code("Bar\r\n")
                    .As(new SetBaseTypeCodeGenerator("Bar")),
                factory.CodeTransition(SyntaxConstants.TransitionString)
                    .Accepts(AcceptedCharacters.None),
                factory.MetaCode("model ")
                    .Accepts(AcceptedCharacters.None),
                factory.Code("Foo")
                    .As(new SetModelTypeCodeGenerator("Foo", "{0}<{1}>"))
            };

            var expectedErrors = new[]
            {
                new RazorError("The 'inherits' keyword is not allowed when a 'model' keyword is used.", new SourceLocation(9, 0, 9), 1)
            };
            expectedSpans.Zip(spans, (exp, span) => new { expected = exp, span = span }).ToList().ForEach(i => Assert.Equal(i.expected, i.span));
            Assert.Equal(expectedSpans, spans.ToArray());
            Assert.Equal(expectedErrors, errors.ToArray());
        }
开发者ID:JokerMisfits,项目名称:linux-packaging-mono,代码行数:36,代码来源:MvcCSharpRazorCodeParserTest.cs

示例2: ParseModelKeyword_ErrorOnModelFollowedByInherits

        public void ParseModelKeyword_ErrorOnModelFollowedByInherits() {
            // Arrange + Act
            List<RazorError> errors = new List<RazorError>();
            var document =
@"@ModelType Foo
@inherits Bar";
            var spans = ParseDocument(document, errors);

            // Assert
            var expectedSpans = new Span[] {
                new TransitionSpan(new SourceLocation(0, 0, 0), "@") { AcceptedCharacters = AcceptedCharacters.None },
                new MetaCodeSpan(new SourceLocation(1, 0, 1), "ModelType ") { AcceptedCharacters = AcceptedCharacters.None },
                new ModelSpan(new SourceLocation(11, 0, 11), "Foo\r\n", "Foo"),
                new TransitionSpan(new SourceLocation(16, 1, 0), "@") { AcceptedCharacters = AcceptedCharacters.None },
                new MetaCodeSpan(new SourceLocation(17, 1, 1), "inherits ") { AcceptedCharacters = AcceptedCharacters.None },
                new InheritsSpan(new SourceLocation(26, 1, 10), "Bar", "Bar")
            };

            var expectedErrors = new[] {
                new RazorError("The 'inherits' keyword is not allowed when a 'ModelType' keyword is used.", new SourceLocation(25, 1, 9), 1)
            };
            expectedSpans.Zip(spans, (exp, span) => new { expected = exp, span = span }).ToList().ForEach(i => Assert.AreEqual(i.expected, i.span));
            CollectionAssert.AreEqual(expectedSpans, spans, "Spans do not match");
            CollectionAssert.AreEqual(expectedErrors, errors, "Errors do not match");
        }
开发者ID:jesshaw,项目名称:ASP.NET-Mvc-3,代码行数:25,代码来源:MvcVBRazorCodeParserTest.cs

示例3: ParseModelKeyword_ErrorOnMultipleModelStatements

        public void ParseModelKeyword_ErrorOnMultipleModelStatements()
        {
            // Arrange + Act
            List<RazorError> errors = new List<RazorError>();
            var document =
                @"@model Foo
@model Bar";
            var spans = ParseDocument(document, errors);

            // Assert
            var factory = SpanFactory.CreateCsHtml();
            var expectedSpans = new Span[]
            {
                factory.EmptyHtml(),
                factory.CodeTransition(SyntaxConstants.TransitionString)
                    .Accepts(AcceptedCharacters.None),
                factory.MetaCode("model ")
                    .Accepts(AcceptedCharacters.None),
                factory.Code("Foo\r\n")
                    .As(new SetModelTypeCodeGenerator("Foo", "{0}<{1}>")),
                factory.CodeTransition(SyntaxConstants.TransitionString)
                    .Accepts(AcceptedCharacters.None),
                factory.MetaCode("model ")
                    .Accepts(AcceptedCharacters.None),
                factory.Code("Bar")
                    .As(new SetModelTypeCodeGenerator("Bar", "{0}<{1}>"))
            };

            var expectedErrors = new[]
            {
                new RazorError("Only one 'model' statement is allowed in a file.", new SourceLocation(18, 1, 6), 1)
            };
            expectedSpans.Zip(spans, (exp, span) => new { expected = exp, span = span }).ToList().ForEach(i => Assert.Equal(i.expected, i.span));
            Assert.Equal(expectedSpans, spans.ToArray());
            Assert.Equal(expectedErrors, errors.ToArray());
        }
开发者ID:JokerMisfits,项目名称:linux-packaging-mono,代码行数:36,代码来源:MvcCSharpRazorCodeParserTest.cs

示例4: ParseModelKeyword_ErrorOnMultipleModelStatements

        public void ParseModelKeyword_ErrorOnMultipleModelStatements() {
            // Arrange + Act
            List<RazorError> errors = new List<RazorError>();
            var document =
@"@ModelType Foo
@ModelType Bar";
            var spans = ParseDocument(document, errors);

            // Assert
            var expectedSpans = new Span[] {
                new TransitionSpan(new SourceLocation(0, 0, 0), "@") { AcceptedCharacters = AcceptedCharacters.None },
                new MetaCodeSpan(new SourceLocation(1, 0, 1), "ModelType ") { AcceptedCharacters = AcceptedCharacters.None },
                new ModelSpan(new SourceLocation(11, 0, 11), "Foo\r\n", "Foo"),
                new TransitionSpan(new SourceLocation(16, 1, 0), "@") { AcceptedCharacters = AcceptedCharacters.None },
                new MetaCodeSpan(new SourceLocation(17, 1, 1), "ModelType ") { AcceptedCharacters = AcceptedCharacters.None },
                new ModelSpan(new SourceLocation(27, 1, 11), "Bar", "Bar"),
            };

            var expectedErrors = new[] {
                new RazorError("Only one 'ModelType' statement is allowed in a file.", new SourceLocation(26, 1, 10), 1)
            };
            expectedSpans.Zip(spans, (exp, span) => new { expected = exp, span = span }).ToList().ForEach(i => Assert.AreEqual(i.expected, i.span));
            CollectionAssert.AreEqual(expectedSpans, spans);
            CollectionAssert.AreEqual(expectedErrors, errors);
        }
开发者ID:jesshaw,项目名称:ASP.NET-Mvc-3,代码行数:25,代码来源:MvcVBRazorCodeParserTest.cs


注:本文中的System.Web.Razor.Parser.SyntaxTree.Span.Zip方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。