public void GetIndexes(int?start, int?end, int step, params int[] expected)
        {
            var element = new JsonPathArraySliceElement(start, end, step);

            var actual = element.GetIndexes();

            actual.Should().BeEquivalentTo(expected);
        }
        public void GetNormalized_StepNotOne_ReturnsSelf()
        {
            var element = new JsonPathArraySliceElement(null, null, 2);

            var actual = element.GetNormalized();

            actual.Should().Be(element);
        }
        public void ContainsIndex(int?start, int?end, int step, int index, bool?expected)
        {
            var element = new JsonPathArraySliceElement(start, end, step);

            bool?actual = element.ContainsIndex(index);

            actual.Should().Be(expected);
        }
        public void GetNormalized_ContainsAllIndexes_ReturnsAnyArrayIndexElement()
        {
            var element  = new JsonPathArraySliceElement(0, null, 1);
            var expected = new JsonPathAnyArrayIndexElement();

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void GetNormalized_EmptySliceNotStartingWithNull_ReturnsEmptySliceStartingWithNull()
        {
            var element  = new JsonPathArraySliceElement(3, 3, 1);
            var expected = new JsonPathArraySliceElement(null, 0, 1);

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void GetNormalized_PeriodicIndexesEndingWithMaxValue_ReturnsArraySliceElementWithNullEnd()
        {
            var element  = new JsonPathArrayIndexListElement(new[] { int.MaxValue - 6, int.MaxValue - 4, int.MaxValue - 2, int.MaxValue });
            var expected = new JsonPathArraySliceElement(int.MaxValue - 6, null, 2);

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void GetNormalized_SingleIndex_ReturnsArrayIndexElement()
        {
            var element  = new JsonPathArraySliceElement(42, 43, 7);
            var expected = new JsonPathArrayIndexElement(42);

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void Matches_ArraySlice(string expression, int?start, int?end, int step, bool?expected)
        {
            var element = new JsonPathExpressionElement(expression);
            var other   = new JsonPathArraySliceElement(start, end, step);

            bool?actual = element.Matches(other);

            actual.Should().Be(expected);
        }
        public void GetNormalized_PeriodicIndexesStartingFromZero_ReturnsArraySliceElementWithNullStart()
        {
            var element  = new JsonPathArrayIndexListElement(new[] { 0, 1, 2, 3 });
            var expected = new JsonPathArraySliceElement(null, 4, 1);

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void GetNormalized_PeriodicIndexesWithNegativeStep_ReturnsArraySliceElement()
        {
            var element  = new JsonPathArrayIndexListElement(new[] { 3, 2, 1 });
            var expected = new JsonPathArraySliceElement(3, 0, -1);

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void GetNormalized_PeriodicIndexes_ReturnsArraySliceElement()
        {
            var element  = new JsonPathArrayIndexListElement(new[] { 1, 2, 3 });
            var expected = new JsonPathArraySliceElement(1, 4, 1);

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void Matches_Any(JsonPathElementType type, bool?expected)
        {
            var element = new JsonPathArraySliceElement(null, null);
            var other   = ElementCreator.CreateAny(type);

            bool?actual = element.Matches(other);

            actual.Should().Be(expected);
        }
        public void GetNormalized_StartsWithZero_ReturnsArraySliceElementStartingWithNull()
        {
            var element  = new JsonPathArraySliceElement(0, 3, 1);
            var expected = new JsonPathArraySliceElement(null, 3, 1);

            var actual = element.GetNormalized();

            actual.Should().BeEquivalentTo(expected);
        }
        public void Matches_ArraySlice(int index, int?start, int?end, int step, bool?expected)
        {
            var element = new JsonPathArrayIndexElement(index);
            var other   = new JsonPathArraySliceElement(start, end, step);

            bool?actual = element.Matches(other);

            actual.Should().Be(expected);
        }
Пример #15
0
        private static void AppendArraySlice(this StringBuilder builder, JsonPathArraySliceElement element)
        {
            builder.Append('[');

            builder.AppendNullable(element.Start);
            builder.Append(':');
            builder.AppendNullable(element.End);
            if (element.Step != 1)
            {
                builder.Append(':');
                builder.Append(element.Step);
            }

            builder.Append(']');
        }
        public void IndexCount(int?start, int?end, int step, int?expected)
        {
            var element = new JsonPathArraySliceElement(start, end, step);

            element.IndexCount.Should().Be(expected);
        }
        public void ContainsAllIndexes(int?start, int?end, int step, bool expected)
        {
            var element = new JsonPathArraySliceElement(start, end, step);

            element.ContainsAllIndexes.Should().Be(expected);
        }
        public void IsNormalized(int?start, int?end, int step, bool expected)
        {
            var element = new JsonPathArraySliceElement(start, end, step);

            element.IsNormalized.Should().Be(expected);
        }