CodeKicker.BBCode.Tests.BBCodeTest.ReplaceTextSpans_ArbitraryTextSpans_NoCrash C# (CSharp) Метод

ReplaceTextSpans_ArbitraryTextSpans_NoCrash() приватный Метод

private ReplaceTextSpans_ArbitraryTextSpans_NoCrash ( ) : void
Результат void
        public void ReplaceTextSpans_ArbitraryTextSpans_NoCrash()
        {
            var tree1 = BBCodeTestUtil.GetAnyTree();
            var chosenTexts = new List<string>();
            var tree2 = BBCode.ReplaceTextSpans(tree1, txt =>
                {
                    var count = PexChoose.ValueFromRange("count", 0, 3);
                    var indexes = PexChoose.Array<int>("indexes", count);
                    PexAssume.TrueForAll(0, count, i => indexes[i] >= 0 && indexes[i] <= txt.Length && (i == 0 || indexes[i - 1] < indexes[i]));
                    return
                        Enumerable.Range(0, count)
                            .Select(i =>
                                {
                                    var maxIndex = i == count - 1 ? txt.Length : indexes[i + 1];
                                    var text = PexChoose.ValueNotNull<string>("text");
                                    chosenTexts.Add(text);
                                    return new TextSpanReplaceInfo(indexes[i], PexChoose.ValueFromRange("count", 0, indexes[i] - maxIndex + 1), new TextNode(text));
                                })
                            .ToArray();
                }, null);
            var bbCode = tree2.ToBBCode();
            PexAssert.TrueForAll(chosenTexts, s => bbCode.Contains(s));
        }