示例#1
0
        public void Empty_Returns_Empty_Sequence()
        {
            var result = XEnumerable.Empty <int>();

            (result as ICollection).Should().BeNull("Sequence should not be a collection");
            result.Should().BeEmpty();
        }
示例#2
0
        public void Unit_Returns_Sequence_With_Single_Element()
        {
            var result = XEnumerable.Unit(42);

            (result as ICollection).Should().BeNull("Sequence should not be a collection");
            result.Should().HaveCount(1);
        }
示例#3
0
        public static void IsNullOrEmpty_NonGeneric_Returns_True_If_Source_Is_Empty()
        {
            IEnumerable source = XEnumerable.Empty <int>().ForbidMultipleEnumeration();
            bool        result = source.IsNullOrEmpty();

            result.Should().BeTrue();
        }
示例#4
0
        public static void IsNullOrEmpty_NonGeneric_Returns_False_If_Source_Is_Not_Empty()
        {
            IEnumerable source = XEnumerable.Unit(42).ForbidMultipleEnumeration();
            bool        result = source.IsNullOrEmpty();

            result.Should().BeFalse();
        }
        public void SequenceEqualBy_Returns_True_If_Both_Sequences_Are_Empty()
        {
            var source = XEnumerable.Empty <string>().ForbidMultipleEnumeration();
            var other  = XEnumerable.Empty <string>().ForbidMultipleEnumeration();

            source.SequenceEqualBy(other, s => s.Length).Should().BeTrue();
        }
示例#6
0
        public void Generate_Returns_Sequence_Of_Values_Based_On_Previous_Value()
        {
            var sequence = XEnumerable.Generate(0, previous => previous + 2);
            var expected = new[] { 0, 2, 4, 6, 8 };
            var actual   = sequence.Take(5);

            actual.Should().Equal(expected);
        }
示例#7
0
        public void Generate_By_Index_Returns_Sequence_Of_Values_Based_On_Index()
        {
            var sequence = XEnumerable.Generate(index => index * 2);
            var expected = new[] { 0, 2, 4, 6, 8 };
            var actual   = sequence.Take(5);

            actual.Should().Equal(expected);
        }
示例#8
0
        public void RankBy_Throws_When_Argument_Is_Null()
        {
            var source = XEnumerable.Empty <int>().ForbidEnumeration();

            TestHelper.AssertThrowsWhenArgumentNull(
                // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                () => source.RankBy(x => x, (x, r) => x, null));
        }
示例#9
0
        public void ElementAtOrDefault_Throws_If_Index_Is_Negative()
        {
            var source = XEnumerable.Empty <int>().ForbidEnumeration();
            // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
            var ex = Assert.Throws <ArgumentOutOfRangeException>(() => source.ElementAtOrDefault(-1, 42));

            ex.ParamName.Should().Be("index");
        }
示例#10
0
        public void ToHierarchy_Throws_If_Argument_Is_Null()
        {
            var source = XEnumerable.Empty <Foo>().ForbidEnumeration();

            TestHelper.AssertThrowsWhenArgumentNull(
                // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                () => source.ToHierarchy(f => f.Id, f => f.ParentId, null));
        }
示例#11
0
        public void Generate_By_Index_Throws_If_Generator_Is_Null()
        {
            // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
            // ReSharper disable once AssignNullToNotNullAttribute
            var ex = Assert.Throws <ArgumentNullException>(() => XEnumerable.Generate <int>(null));

            ex.ParamName.Should().Be("generator");
        }
示例#12
0
        public void SequenceEqualBy_Throws_If_Argument_Is_Null()
        {
            var source = XEnumerable.Empty <string>().ForbidEnumeration();
            var other  = XEnumerable.Empty <string>().ForbidEnumeration();

            TestHelper.AssertThrowsWhenArgumentNull(
                // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                () => source.SequenceEqualBy(other, s => s.Length, null));
        }
        public void FullOuterJoin_Throws_If_Argument_Null()
        {
            var left  = XEnumerable.Empty <int>().ForbidEnumeration();
            var right = XEnumerable.Empty <int>().ForbidEnumeration();

            TestHelper.AssertThrowsWhenArgumentNull(
                // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                () => left.FullOuterJoin(right, x => x, y => y, (k, x, y) => 0, 0, 0, null));
        }
示例#14
0
        public void RankByDescending_Throws_When_Argument_Is_Null()
        {
            var source = XEnumerable.Empty <int>().ForbidEnumeration();

            TestHelper.AssertThrowsWhenArgumentNull(
                // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                () => source.RankByDescending(x => x, (x, r) => x, null),
                "source", "keySelector", "resultSelector");
        }
示例#15
0
        public void SingleOrDefault_With_Predicate_Throws_If_Predicate_Is_Null()
        {
            var source = XEnumerable.Empty <int>().ForbidEnumeration();
            Func <int, bool> predicate = null;
            // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
            // ReSharper disable once AssignNullToNotNullAttribute
            var ex = Assert.Throws <ArgumentNullException>(() => source.SingleOrDefault(predicate, 42));

            ex.ParamName.Should().Be("predicate");
        }
示例#16
0
        public void RightOuterJoin_Throws_If_Argument_Null()
        {
            var left  = XEnumerable.Empty <int>().ForbidEnumeration();
            var right = XEnumerable.Empty <int>().ForbidEnumeration();

            TestHelper.AssertThrowsWhenArgumentNull(
                // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                () => left.RightOuterJoin(right, x => x, y => y, (x, y) => 0, 0, null),
                "left", "right", "leftKeySelector", "rightKeySelector", "resultSelector");
        }
示例#17
0
        public void SingleOrDefault_Returns_Single_Element_If_Sequence_Has_One_Element()
        {
            var source = XEnumerable.Unit(1).ForbidMultipleEnumeration();

            source.SingleOrDefault(42).Should().Be(1);
        }
示例#18
0
        public void None_With_Predicate_Returns_True_If_Source_Is_Empty()
        {
            var source = XEnumerable.Empty <int>().ForbidMultipleEnumeration();

            source.None(IsEven).Should().BeTrue();
        }
示例#19
0
        public void None_Returns_False_If_Source_Is_Not_Empty()
        {
            IEnumerable <int> source = XEnumerable.Unit(42).ForbidMultipleEnumeration();

            source.None().Should().BeFalse();
        }
示例#20
0
        public void None_Returns_True_If_Source_Is_Empty()
        {
            IEnumerable <int> source = XEnumerable.Empty <int>().ForbidMultipleEnumeration();

            source.None().Should().BeTrue();
        }
示例#21
0
        public void ElementAtOrDefault_Returns_Specified_Default_Value_If_Sequence_Is_Empty()
        {
            var source = XEnumerable.Empty <int>().ForbidMultipleEnumeration();

            source.ElementAtOrDefault(0, 42).Should().Be(42);
        }
示例#22
0
        public void SingleOrDefault_With_Predicate_Returns_Specified_Default_Value_If_Sequence_Is_Empty()
        {
            var source = XEnumerable.Empty <int>().ForbidMultipleEnumeration();

            source.SingleOrDefault(IsEven, 42).Should().Be(42);
        }
示例#23
0
 public void Generate_Throws_If_Argument_Is_Null()
 {
     // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
     TestHelper.AssertThrowsWhenArgumentNull(() => XEnumerable.Generate(0, i => i));
 }