Ejemplo n.º 1
0
        public void MissingOptionalPosition3()
        {
            var markup = "[|first|] {|x:second|}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out _, out ImmutableArray <int> positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > _);
            Assert.Empty(positions);
        }
Ejemplo n.º 2
0
        public void MissingOptionalPosition3()
        {
            var markup = "[|first|] {|x:second|}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var output, out ImmutableArray <int> positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Empty(positions);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, positions, spans));
        }
Ejemplo n.º 3
0
        public void MarkupSpanSplitsEndOfLine()
        {
            var markup   = "class C { }\r{|b:\n|}";
            var expected = "class C { }\r\n";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var result, out var positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(expected, result);

            Assert.Empty(positions);
            Assert.Single(spans);

            Assert.True(spans.TryGetValue("b", out var named));
            Assert.Equal(new[] { new TextSpan(12, 1) }, named);

            Assert.False(spans.TryGetValue(string.Empty, out _));
        }
Ejemplo n.º 4
0
        public void CDataMarkup()
        {
            var markup   = "{|X:[|<![CDATA[|]|}text[|]]>|]";
            var expected = "<![CDATA[text]]>";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var result, out var positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(expected, result);

            Assert.Empty(positions);
            Assert.Equal(2, spans.Count);

            Assert.True(spans.TryGetValue("X", out var named));
            Assert.Equal(new[] { new TextSpan(0, 9) }, named);

            Assert.True(spans.TryGetValue(string.Empty, out var unnamed));
            Assert.Equal(new[] { new TextSpan(0, 9), new TextSpan(13, 3) }, unnamed);
        }
Ejemplo n.º 5
0
        public void OverlappingSpans4C()
        {
            var markup = "{|x:first {|#0:seco|}nd|#0}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out _, out ImmutableArray <int> _, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(2, spans.Count);

            Assert.True(spans.TryGetValue("x", out var xs));
            var x = Assert.Single(xs);

            Assert.Equal(TextSpan.FromBounds(0, 10), x);

            Assert.True(spans.TryGetValue("#0", out var ys));
            var y = Assert.Single(ys);

            Assert.Equal(TextSpan.FromBounds(6, 12), y);
        }
Ejemplo n.º 6
0
        public void OverlappingSpans3A()
        {
            var markup = "{|#0:first {|y:seco|}nd|}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var output, out ImmutableArray <int> positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(2, spans.Count);

            Assert.True(spans.TryGetValue("#0", out var xs));
            var x = Assert.Single(xs);

            Assert.Equal(TextSpan.FromBounds(0, 12), x);

            Assert.True(spans.TryGetValue("y", out var ys));
            var y = Assert.Single(ys);

            Assert.Equal(TextSpan.FromBounds(6, 10), y);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, positions, spans));
        }
Ejemplo n.º 7
0
        public void OverlappingSpans4C()
        {
            var markup = "{|x:first {|#0:seco|}nd|#0}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var output, out ImmutableArray <int> positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(2, spans.Count);

            Assert.True(spans.TryGetValue("x", out var xs));
            var x = Assert.Single(xs);

            Assert.Equal(TextSpan.FromBounds(0, 10), x);

            Assert.True(spans.TryGetValue("#0", out var ys));
            var y = Assert.Single(ys);

            Assert.Equal(TextSpan.FromBounds(6, 12), y);

            // Test round-trip
            // https://github.com/dotnet/roslyn-sdk/issues/505
            var unexpectedMarkup = "{|x:first {|#0:seco|}nd|}";

            Assert.Equal(unexpectedMarkup, TestFileMarkupParser.CreateTestFile(output, positions, spans));
        }